我試圖確定哪些環境因素或其他因素對iconv()
與TRANSLIT
選項的呼叫結果有影響。什麼因素影響成功的iconv()TRANSLIT轉換?
當通過Apache和CLI運行時,以下代碼在本地具有不同的結果。
<?php
setlocale(LC_ALL, 'en_GB.UTF-8');
header('Content-type: text/html; charset=utf-8'); // for web
$utf8_string = "Pádraig's naïve café";
echo iconv('UTF-8', 'ASCII//IGNORE//TRANSLIT', $utf8_string);
?>
預期結果:(empty string)
從CLI結果:Padraig's naive cafe
在Web瀏覽器結果P'adraig's na"ive cafe
在某些系統上,我得到預期的結果,但我可以」嚴格把握爲什麼。
什麼因素影響轉換,我應該遵循哪些步驟來增加獲得好結果的機會?
您的源文件應該保存爲utf-8文件。否則,即使你告訴iconv,它的字符串實際上也不會是utf-8。 – ontrack 2012-03-19 14:56:24
該文件保存爲UTF-8。 – drewm 2012-03-19 15:11:01
什麼系統可以得到正確的結果?如果它是Linux/Windows服務器,它會改變嗎? – James 2012-03-19 15:26:51