Convert ASCII TO UTF-8 Encoding
如何在PHP中将ASCII编码转换为UTF8
ASCII是UTF-8的子集,因此,如果文档是ASCII,则它已经是UTF-8。
如果您确定您当前的编码是纯ASCII,则无需执行任何操作,因为ASCII已经是有效的UTF-8。
但是,如果您仍要进行转换,只是要确保其UTF-8,则可以使用iconv
1 |
IGNORE将丢弃所有无效字符,以防万一某些无效字符为ASCII。
使用mb_convert_encoding将ASCII转换为UTF-8。更多信息在这里
1 2 3 4 5 | $string ="chárêct?rs"; print(mb_detect_encoding ($string)); $string = mb_convert_encoding($string,"UTF-8"); print(mb_detect_encoding ($string)); |
使用
手册页可以在这里找到http://php.net/manual/en/function.utf8-encode.php
另请参阅Joel on Software上的这篇文章。如果Unicode是什么以及它如何工作,它提供了很好的解释。 http://www.joelonsoftware.com/articles/Unicode.html
" ASCII是UTF-8的子集,所以..."-那么UTF-8是一个集合? :)
换句话说:任何用
使用iconv看起来是最好的解决方案,但我的情况是,我注意到此功能:"在输入字符串中检测到非法字符"(无igonore)。
我使用2个函数来处理ASCII字符串,然后将其转换为ASCII代码数组,然后进行序列化:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 | public static function ToAscii($string) { $strlen = strlen($string); $charCode = array(); for ($i = 0; $i < $strlen; $i++) { $charCode[] = ord(substr($string, $i, 1)); } $result = json_encode($charCode); return $result; } public static function fromAscii($string) { $charCode = json_decode($string); $result = ''; foreach ($charCode as $code) { $result .= chr($code); }; return $result; } |