¿Cuál es la codificación de su archivo? Debería ser UTF8 también. ¿Cuál es el juego de caracteres predeterminado de su servidor http? Debería ser UTF-8 también.
codificación sólo funciona si:
- el archivo está codificado correctamente
- el servidor le dirá cuál es la codificación del archivo entregado.
Cuando se trabaja con bases de datos, también hay que establecer la codificación correcta para sus campos DB y la forma en que el cliente de MySQL se comunica con el servidor (véase mysql_set_charset()
). Los campos solo no son suficientes porque su cliente MySQL (en este caso, PHP) podría establecerse en ISO por defecto y reinterpretar los datos. Así que terminas con UTF8 DB -> cliente ISO -> inyectado en el script UTF8 PHP. No es de extrañar por qué está estropeado al final :-)
¿Cómo se sirve el archivo con el juego de caracteres derecho?
header('Content-type: text/html; charset=utf-8')
es una solución
archivo .htaccess que contiene AddDefaultCharset UTF-8
es otro
HTML meta-tipo de contenido podría funcionar también, pero siempre es mejor para enviar esta información a través de las cabeceras HTTP.
PD: también tiene que utilizar mb_strlen()
porque strlen()
en cadenas UTF8 probablemente informará más que la longitud real.
Hay 2 cosas para comprobar, 1) ¿Es su DB UTf-8, 2) ¿Es su tipo de documento UTF-8? – afuzzyllama
Una buena respuesta de 5 lol –
@Maththieu sí, triste ... Supongo que esto es porque la mayoría de las personas trabaja con inglés y no se preocupe por la codificación ;-) – Capsule