PHP实现ASCII码与字符串相互转换的方法
ASCII码与字符串互转,在JS里实现很简单

"快".charCodeAt(0); String.fromCharCode(24555);
在PHP中实现就稍微复杂一些,下面是代码。
<?php class Ascii { private $prefix = "&#"; public function str2ascii($str) { $len = strlen($str); $i = 0; $iscii = ''; while ($i < $len) { $ud = 0; if (ord($str{$i}) >= 0 && ord($str{$i}) <= 127) { $ud = ord($str{$i}); $i += 1; } else if (ord($str{$i}) >= 192 && ord($str{$i}) <= 223) { $ud = (ord($str{$i}) - 192) * 64 + (ord($str{$i + 1}) - 128); $i += 2; } else if (ord($str{$i}) >= 224 && ord($str{$i}) <= 239) { $ud = (ord($str{$i}) - 224) * 4096 + (ord($str{$i + 1}) - 128) * 64 + (ord($str{$i + 2}) - 128); $i += 3; } else if (ord($str{$i}) >= 240 && ord($str{$i}) <= 247) { $ud = (ord($str{$i}) - 240) * 262144 + (ord($str{$i + 1}) - 128) * 4096 + (ord($str{$i + 2}) - 128) * 64 + (ord($str{$i + 3}) - 128); $i += 4; } else if (ord($str{$i}) >= 248 && ord($str{$i}) <= 251) { $ud = (ord($str{$i}) - 248) * 16777216 + (ord($str{$i + 1}) - 128) * 262144 + (ord($str{$i + 2}) - 128) * 4096 + (ord($str{$i + 3}) - 128) * 64 + (ord($str{$i + 4}) - 128); $i += 5; } else if (ord($str{$i}) >= 252 && ord($str{$i}) <= 253) { $ud = (ord($str{$i}) - 252) * 1073741824 + (ord($str{$i + 1}) - 128) * 16777216 + (ord($str{$i + 2}) - 128) * 262144 + (ord($str{$i + 3}) - 128) * 4096 + (ord($str{$i + 4}) - 128) * 64 + (ord($str{$i + 5}) - 128); $i += 6; } else if (ord($str{$i}) >= 254 && ord($str{$i}) <= 255) { $ud = false; } $iscii .= $this->prefix . $ud . ";"; } return $iscii; } public function ascii2str($iscii) { $iscii = str_replace($this->prefix, "", $iscii); $isciis = explode(";", $iscii); $str = ''; foreach ($isciis as $iscii) { if ($iscii < 128) { $str .= chr($iscii); } else if ($iscii < 2048) { $str .= chr(192 + (($iscii - ($iscii % 64)) / 64)); $str .= chr(128 + ($iscii % 64)); } else { $str .= chr(224 + (($iscii - ($iscii % 4096)) / 4096)); $str .= chr(128 + ((($iscii % 4096) - ($iscii % 64)) / 64)); $str .= chr(128 + ($iscii % 64)); } } return $str; } }