5
Su Linux iconv()
traslittera dieresi correttamente per ASCII in base alle impostazioni locali corrente:traslitterare con iconv() su Windows
$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
Tuttavia, su Windows posso solo "a
(vale a dire: virgolette doppie, a) indipendentemente dal set di impostazioni internazionali. A quanto pare su Windows i locali sono chiamati "inglese" e "tedesco", ma:
setlocale(LC_CTYPE, 'german');
iconv('UTF-8', 'ASCII//TRANSLIT', $utf8_umlaut_a); // Still gives '"a'
buona domanda, mi chiedo se esista un modo per eseguire la traslitterazione per lingua, non genericamente per set di caratteri –
È un bug PHP aperto: https://bugs.php.net/bug.php?id=66278 –