Created
July 20, 2010 08:52
-
-
Save millken/482708 to your computer and use it in GitHub Desktop.
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
<?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 '<pre>'; | |
//$str= ascii::encode($str); | |
//echo $str;//."<br />"; | |
//$str = ascii::decode($str); | |
//echo $str."<br />"; | |
$str= ascii::encode($str); | |
echo str_replace(array(" "," "), array("<br />","\n"), $str); | |
?> | |
<form action="" method="post" name="form1" target="_self" id="form1"> | |
<?php | |
echo ascii::encode('这是个完美的acsii转换类,此转换类不同于一般的依靠对照表来完成。acsii包含所有不同语言的字符集,请输入各国语言试试:(多国翻译:http://www.mutouyu.com/translation/)'); | |
?> | |
<div align="center"> | |
<textarea name="str" cols="100" rows="10"></textarea> | |
<br /> | |
<input type="submit" name="Submit" value="submit" /> | |
</div> | |
</form> |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment