setlocale(LC_CTYPE, "de_DE.UTF8")
osetlocale (LC_CTYPE, "de_DE.UTF8") o setlocale (LC_CTYPE, "de_DE.UTF-8")?
setlocale(LC_CTYPE, "de_DE.UTF-8")
Con o senza trattino? Ho visto entrambe le risposte.
setlocale(LC_CTYPE, "de_DE.UTF8")
osetlocale (LC_CTYPE, "de_DE.UTF8") o setlocale (LC_CTYPE, "de_DE.UTF-8")?
setlocale(LC_CTYPE, "de_DE.UTF-8")
Con o senza trattino? Ho visto entrambe le risposte.
mi piacerebbe correre locale -a
e utilizzare la stringa in output. Su OS X 10.9, ottengo de_DE.UTF-8
. Su Debian 6, ottengo . dpkg-reconfigure locales
utilizza de_DE.UTF-8
d'altra parte. Il modo più sicuro è probabilmente quello di controllare il valore di ritorno di setlocale
e provare diverse varianti se fallisce.
Detto questo, tutte le versioni dovrebbero funzionare normalmente: con o senza trattino, maiuscolo o minuscolo.
Il nome della codifica è UTF-8.
ma in questo caso entrambi i parametri sono corretti e che stanno facendo lo stesso lavoro per voi
Ecco una soluzione pragmatica per risolverlo in modo programmatico. Se lo strumento setlocale
non funziona, restituisce false.
if (!setlocale(LC_ALL, str_replace('utf-8', 'utf8', $locale))
&& !setlocale(LC_ALL, str_replace('utf8', 'utf-8', $locale))) {
/* fail gracefully */
}
/* your locale has been set up properly
Nel mio caso si potrebbe lavorare sui nostri Mac e l'altro sarebbe lavorare sulle scatole Linux CI, quindi questa soluzione rende i test passano su entrambi.
Btw; fai attenzione a LC_ALL. Imposta le impostazioni internazionali per l'ambito più debole di cui hai bisogno.
È possibile passare una serie di valori a setLocale()
. Mi sono appena imbattuto in questo problema durante lo sviluppo su OSX e il test sull'hosting in esecuzione su Linux. Così ora faccio questo: setLocale(LC_ALL, ["de.utf", "de_DE.utf", "de_DE.UTF-8", "de", "de_DE"])
Il primo a corrispondere è un andare. Documenti: https://secure.php.net/setlocale
Perfetto. Ho 'Debian GNU/Linux 6.0.9 (squeeze)' e 'locale -a' restituisce' de_DE.utf8' - tra un centinaio di altri. –
@what 'locale -a | grep -i de_de' dovrebbe aiutare. – sjas