请注意,当区域设置类别 LC_CTYPE 设置为 C 或 POSIX 时,iconv('UTF-8', 'ASCII//TRANSLIT', ...) 无法正常工作。您必须选择其他区域设置,否则所有非 ASCII 字符都将被替换为问号。这至少在 glibc 2.5 中是正确的。
示例
<?php
setlocale(LC_CTYPE, 'POSIX');
echo iconv('UTF-8', 'ASCII//TRANSLIT', "Žluťoučký kůň\n");
// ?lu?ou?k? k??
setlocale(LC_CTYPE, 'cs_CZ');
echo iconv('UTF-8', 'ASCII//TRANSLIT', "Žluťoučký kůň\n");
// Zlutoucky kun
?>