Skip to content

Instantly share code, notes, and snippets.

@millken
Created July 20, 2010 08:52
Show Gist options
  • Save millken/482708 to your computer and use it in GitHub Desktop.
Save millken/482708 to your computer and use it in GitHub Desktop.
<?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("&#13;","&#10;"), 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