2011-04-16 66 views
8

Estoy desarrollando mi primer sitio web para un cliente francés y estoy teniendo problemas masivos con los acentos que se muestran como "?". Después de buscar en Google durante días, pensé que entendía, pero los problemas persisten.Codificación de caracteres para acentos franceses

Para simplificarlo, voy a explicar sólo los encabezados de correo electrónico (el mensaje contiene acento francés)

$headers = 'MIME-Version: 1.0' . "\r\n"; 
$headers .= 'Content-type: text/html; charset=iso-8859-1' . "\r\n"; 

He intentado usar el juego de caracteres UTF-8 y el iso-8859-1, pero todavía recibe este tipo de correos electrónicos:

Merci pour votre intérêt pour les tee shirts. 

¿Alguien puede ayudar? Estoy teniendo estos problemas con mySql, HTML, PHP en todas partes, básicamente.

Gracias.

+0

Parece que el problema está en la entrada. Debes saber qué es el juego de caracteres en el texto de entrada y quizás convertirlo. Aunque no estoy seguro de cómo hacer cualquiera de estos. –

+0

Gracias. Es la dirección correcta. – denislexic

Respuesta

9

Si intérêt muestra como intérêt es probable (es decir, por debajo de la corrupción debido a la doble codificación) tiene UTF-8 texto codificado que se muestra como si se tratara de ISO-8859-1.

Asegúrese de que los encabezados estén formados correctamente y presente el contenido como codificado en UTF-8.

+0

Probablemente tengas razón. Tengo una función que convierte caracteres acentuados en entidades html y luego muestra el contenido en iso-8859-1. Le echaré un vistazo. – denislexic

+0

Terminé poniendo solo el encabezado utf-8 y sacando cualquier codificación que tenía. Parece estar trabajando ahora. Gracias. – denislexic

+0

Captura fantástica. No me di cuenta de que este tipo particular de artefacto de caracteres estaba relacionado con el envío de UTF-8 como ISO-8859-1. En Rails 3, estaba usando send_data para enviar un archivo con acentos. Solo necesita agregar "charset = utf-8" al parámetro: type. ¡Dulce! –

4

Antes que nada, vuelva a hacer el juego de caracteres en el encabezado UTF8.

En su página, utilice utf8_encode() en su caso para que valores seguros procedentes de una base de datos o archivos externos están correctamente codificados (tratan de establecer la codificación de los campos en su base de datos a UTF-8 también)

Además, tomar un vistazo a la función htmlentities() para analizar caracteres especiales a entidades html que también pueden resolver problemas de codificación.

+0

Le daré una oportunidad y le haré saber. Gracias. – denislexic

Cuestiones relacionadas