2012-09-11 7 views
6

estoy tratando de utilizar file_put_contents (y file_get_contents para el caso) con una codificación UTF-8 ¥ siguiendo este post StackOverflow: How to write file in UTF-8 format? que utiliza:file_put_contents ¿codificación utilizada en servidores web?

$data = mb_convert_encoding($data, 'UTF-8', 'OLD-ENCODING'); 

Lo cual no fue muy bien explicado, ya que produce un error de:

mb_convert_encoding(): Illegal character encoding specified 

Así 'OLD-ENCODING' fue sólo un marcador de posición que estaban usando. La pregunta que tengo es a qué codificación debo cambiar esto? ASCII o ISO-8859-1? ¿Qué codificación usan la mayoría de los servidores web? ¿Importa?

Cuando abro el archivo, obtendré el símbolo correctamente, solo si tengo mi bloc de notas configurado con la codificación UTF-8. Si lo abro con otro juego de caracteres aparecerá con un "?".

Respuesta

4

Try sin tercer parámetro.

$str = mb_convert_encoding($str, "UTF-8"); 

O auto:

$str = mb_convert_encoding($str, "UTF-8", "auto"); 

Más información y ejemplos en: http://php.net/manual/function.mb-convert-encoding.php

+0

lol esto funciona. –

+0

ofc it funciona, como dice la primera regla del programador: "hazlo tan fácil como puedas" :) – StasGrin

+0

Lo probé con muchos escenarios diferentes y funcionó cada vez. gracias, esto merece más votos positivos :) –

1

mb_convert_encoding($data, 'UTF-8', mb_detect_encoding($data));

mb_detect_encoding

+0

Gracias! pero eso detecta la codificación utilizada en el servidor? ¿Mis símbolos se convierten a la codificación correcta del servidor? –

+0

No, detecta la codificación en '$ data' – nullpotent

+0

oh, eso funcionaría para file_get_contents. ¿Qué hay de ponerlo? ¿Qué codificación usan los servidores web? –

Cuestiones relacionadas