Chinaunix首页 | 论坛 | 博客
  • 博客访问: 5120108
  • 博文数量: 921
  • 博客积分: 16037
  • 博客等级: 上将
  • 技术积分: 8469
  • 用 户 组: 普通用户
  • 注册时间: 2006-04-05 02:08
文章分类

全部博文(921)

文章存档

2020年(1)

2019年(3)

2018年(3)

2017年(6)

2016年(47)

2015年(72)

2014年(25)

2013年(72)

2012年(125)

2011年(182)

2010年(42)

2009年(14)

2008年(85)

2007年(89)

2006年(155)

分类:

2008-01-03 18:27:50

class.ascii.php源码如下:
 

<?php
class ascii
{
    function decode($str) {
        preg_match_all("/(\d{2,5})/", $str,$a);
        $a = $a[0];
        foreach ($a as $dec){
            if ($dec < 128) {
                $utf .= chr($dec);
            } else if ($dec < 2048) {
                $utf .= chr(192 + (($dec - ($dec % 64)) / 64));
                $utf .= chr(128 + ($dec % 64));
            } else {
                $utf .= chr(224 + (($dec - ($dec % 4096)) / 4096));
                $utf .= chr(128 + ((($dec % 4096) - ($dec % 64)) / 64));
                $utf .= chr(128 + ($dec % 64));
            }
        }
        return $utf;
    }
    
    function encode($c){
        $len = strlen($c);
        $a = 0;
        while ($a < $len){
            $ud = 0;
            if (ord($c{$a})>=0 && ord($c{$a})<=127){
                $ud = ord($c{$a});
                $a += 1;
            }else if (ord($c{$a})>=192 && ord($c{$a})<=223){
                $ud = (ord($c{$a})-192)*64 + (ord($c{$a+1})-128);
                $a += 2;
            }else if (ord($c{$a})>=224 && ord($c{$a})<=239){
                $ud = (ord($c{$a})-224)*4096 + (ord($c{$a+1})-128)*64 + (ord($c{$a+2})-128);
                $a += 3;
            }else if (ord($c{$a})>=240 && ord($c{$a})<=247){
                $ud = (ord($c{$a})-240)*262144 + (ord($c{$a+1})-128)*4096 + (ord($c{$a+2})-128)*64 + (ord($c{$a+3})-128);
                $a += 4;
            }else if (ord($c{$a})>=248 && ord($c{$a})<=251){
                $ud = (ord($c{$a})-248)*16777216 + (ord($c{$a+1})-128)*262144 + (ord($c{$a+2})-128)*4096 + (ord($c{$a+3})-128)*64 + (ord($c{$a+4})-128);
                $a += 5;
            }else if (ord($c{$a})>=252 && ord($c{$a})<=253){
                $ud = (ord($c{$a})-252)*1073741824 + (ord($c{$a+1})-128)*16777216 + (ord($c{$a+2})-128)*262144 + (ord($c{$a+3})-128)*4096 + (ord($c{$a+4})-128)*64 + (ord($c{$a+5})-128);
                $a += 6;
            }else if (ord($c{$a})>=254 && ord($c{$a})<=255){ //error

                $ud = false;
            }
            $scill .= "&#$ud;";
        }
        return $scill;
    }
}


header("Content-Type: text/html; charset=UTF-8");

if($_POST['str']){
    $str = $_POST['str'];
}else {
$str ='中文:春节愉快!
港台:春節愉快!
英文:Happy Spring Festival!
韩国语:봄 축제는 행복하다!
日文:スプリング・フェスティバルは幸せである!
荷兰:Gelukkige Festival van de Lente!
德语:Glückliches Frühling Festival!
法语:Festival Heureux De Ressort !
希腊语:Το φεστιβάλ άνοιξη είναι ευτυχές!
意大利:Festival Felice Della Molla!
俄语:Счастливое Празднество Весны!
葡萄牙(巴西):O Festival da mola é feliz!
阿拉伯语:نابض مهرجان سعيدة!
西班牙语:El festival del resorte es feliz!
'
;
}
//echo '

';

//$str= ascii::encode($str);

//echo $str;//."
";

//$str = ascii::decode($str);

//echo $str."
";

$str= ascii::encode($str);
echo str_replace(array(" "," "), array("
"
,"\n"), $str);
?>
<form action="" method="post" name="form1" target="_self" id="form1">
<?php
echo ascii::encode('这是个完美的acsii转换类,此转换类不同于一般的依靠对照表来完成。acsii包含所有不同语言的字符集,请输入各国语言试试:(多国翻译:)');
?>
  <div align="center">
    <textarea name="str" cols="100" rows="10"></textarea>
  <br />
  <input type="submit" name="Submit" value="submit" />
 </div>
</form>

为了大家使用获取方便。我提供下载本文件。

文件: class.ascii.rar
大小: 1KB
下载: 下载

有需要者。下载就是了。呵呵。。

阅读(1870) | 评论(0) | 转发(0) |
给主人留下些什么吧!~~