2010-04-30 21 views
10

Estoy utilizando lo siguiente para dar el nombre completo de un mes en griego.problema setlocale/strftime

setlocale(LC_TIME, 'el_GR'); 
strftime("%B"); 

Esto funciona, excepto la cadena de salida es ISO-8859-7 (página de códigos griego), que es un problema ya que necesito una cadena UTF-8. Podría pasar esto a iconv para convertirlo, pero me preguntaba si había una manera de hacerlo sin recurrir a una función adicional.

¿Podría de alguna manera decirle a strftime que genere una cadena UTF-8 en este caso?

Respuesta

13

Prueba de esto,

setlocale(LC_TIME, 'el_GR.UTF-8'); 
+0

Sí, eso lo hizo. –

+0

no funciona en windows – vee

1

Sólo una anotación al margen de ZZ Coder 's respuesta:

si setlocale(LC_TIME, 'el_GR.UTF-8');

qué no funcionan en Linux, revisar sus lugares habilitados mediante la ejecución de locale -a de la cáscara.

Si no ve el_GR.UTF-8 allí, abra /etc/locale.gen y elimine el comentario de la línea correspondiente.

Luego ejecute locale-gen y debería estar bien.