PHP: setlocale en Windows 7

Tengo un problema con la función setlocale en PHP 5.3 en Windows 7.

Necesito configurar la configuración regional rusa con codificación UTF-8. Vi algunas soluciones donde esto es Russian_Russia.65001, pero la función con este tipo de configuración regional devuelve FALSO.

Todas las soluciones se diseñaron para usar en Windows XP, donde la lista de configuraciones regionales estaba en el Panel de control. En Windows 7 se eliminó esta función.

preguntado el 12 de junio de 12 a las 12:06

2 Respuestas

No es posible utilizar locales UTF-8 en sistemas Windows.:

Si proporciona una página de códigos como UTF-7 o UTF-8, setlocale fallará y devolverá NULL.

Sólo página de códigos de Windows Russian_Russia.1251 funcionará (ver Tabla de locales de Moodle).

Todavía puede intentar configurar ambos y ver cuál pasa:

if ($newLocale = setLocale(LC_CTYPE, 'ru_RU.UTF-8', 'Russian_Russia.1251'))
{
   echo 'Locale is now set to: ' . $newLocale;
}

Respondido el 06 de diciembre de 13 a las 09:12

Ese pequeño código es el resultado de medio día de investigación :) Solo espero que la Sra. tenga razones sólidas para no admitir UTF-8. ¡Es 2013! - piotr_cz

Esto funcionó para mí en Windows 7

putenv('LANG=fr_CA.UTF-8');
setlocale(LC_ALL,'fr_CA.UTF-8');
bindtextdomain('translation','./language');
bind_textdomain_codeset('translation','UTF-8');
textdomain('translation');

Ruta a archivos .po/.mo

./language -> fr_CA.UTF-8 -> LC_MESSAGES -> translation.po
./language -> fr_CA.UTF-8 -> LC_MESSAGES -> translation.mo

contestado el 20 de mayo de 14 a las 19:05

Por supuesto, aquí fr_CA significa francés-canadiense (no ruso) - CloutsCa

Bienvenido a SO, y gracias por su respuesta. Si observa la pregunta con más detalle, notará que tiene casi 2 años y que el autor ya había aceptado la respuesta de que sintió que respondió su pregunta adecuadamente. Esta pregunta ha tenido casi mil visitas, por lo que es posible que esté ayudando a alguien, en algún momento, con esto, pero en realidad es mejor dedicar su atención a las preguntas más recientes. Nuevamente, gracias por su respuesta, se agradece, solo estoy tratando de guiarlo en el uso de SO y su participación en la comunidad. - Ingeniero de software

No es la respuesta que estás buscando? Examinar otras preguntas etiquetadas or haz tu propia pregunta.