在Windows上使用iconv()音译

时间:2013-08-30 02:47:37

标签: php windows locale iconv

在Linux上iconv()根据当前的语言环境设置将变音符正确地音译为ASCII:

$utf8_umlaut_a = 'ä';

setlocale(LC_CTYPE, 'en_US');
iconv('UTF-8', 'ASCII//TRANSLIT', $utf8_umlaut_a); // Gives 'a'

setlocale(LC_CTYPE, 'de_DE');
iconv('UTF-8', 'ASCII//TRANSLIT', $utf8_umlaut_a); // Gives 'ae', correct
                                                   // in German

但是,在Windows上,我只能获得"a(即:双引号,),无论区域设置如何。显然在Windows上,语言环境被命名为“english”和“german”,但是:

setlocale(LC_CTYPE, 'german');
iconv('UTF-8', 'ASCII//TRANSLIT', $utf8_umlaut_a); // Still gives '"a'

1 个答案:

答案 0 :(得分:-1)

我通过使用mb_convert_encoding()和其他mb_ *函数而不是iconv解决了许多与UTF-8相关的问题。