setlocale(LC_ALL, 'en_US.UTF8');
$string= '???è????';
echo iconv('UTF-8', 'ASCII//TRANSLIT', $string);
Run Code Online (Sandbox Code Playgroud)
出错...
应该打印:myresume
这取决于 iconv 库。
\n\n在 Ubuntu 10.10 中,我得到这个:
\n\n$ php -i | egrep "iconv (implementation|library)"\niconv implementation => glibc\niconv library version => 2.12.1\n$ php a.php \nmyresume\nRun Code Online (Sandbox Code Playgroud)\n\n但在另一台使用 GNU iconv 的机器上:
\n\niconv implementation => libiconv\niconv library version => 1.11\n# php a.php \nNotice: iconv(): Unknown error (88) in /tmp/root/a.php on line 5\nRun Code Online (Sandbox Code Playgroud)\n\niconv 完成的音译在各个实现中并不一致。例如,glibc 实现音译\xc3\xa9为e,但 libiconv 将其音译为\'e。
在我们在 PHP 中支持 ICU 音译器(下一个版本)之前,不会有可靠的方法来可靠地进行这些转换(尽管如果您只想删除标记,还有其他解决方案)。在 PHP 的开发版本中,使用 intl 扩展,可以执行以下操作:
\n\n<?php\n$t = Transliterator::create("latin; NFKD; [^\\u0000-\\u007E] Remove; NFC");\necho $t->transliterate(\'\xce\x9d\xce\xb1\xce\xb4\xce\xac\xce\xbb\xce\xb7\xcf\x82 \xe1\xb9\x83\xe1\xbb\xb9\xe1\xb9\x9b\xc3\xa8\xc5\x9f\xc6\xb0\xe1\xb8\xbf\xc4\x95\');\nRun Code Online (Sandbox Code Playgroud)\n\n这使
\n\nNadales myresume\nRun Code Online (Sandbox Code Playgroud)\n
| 归档时间: |
|
| 查看次数: |
2280 次 |
| 最近记录: |