He actualizado mi web app para el uso de UTF-8 en lugar de ANSI.

Hice las siguientes medidas para definir el conjunto de caracteres de:

mysql_set_charset("utf8"); //PHP
<meta http-equiv="Content-Type" content="text/html; charset=utf-8"> //HTML
utf8_general_ci //In MySQL

También he editado el CKEditor config para quitar htmlentities porque necesito el carácter correcto (es decir, é y no &eacute;) para MySQL de búsqueda de texto.

config.entities = false;
config.entities_latin = false;

En la base de datos (phpMyAdmin) y normal en los campos de texto de salida (HTML, <input> o <textarea>), todo parece bien (veo é, no &eacute;, no é, yay).

Sin embargo, CKEditor tiene algunos problemas con la codificación. Ver imagen adjunta para el mismo campo tomadas de la base de datos, aparece en un textarea, a continuación, en un textarea repalced por CKEditor:
CKEditor charset

Esto parece ser en el CKEditor código JavaScript (probablemente un fijo de juego de caracteres), pero no puedo encontrar en el archivo de configuración config. De nuevo, desde el é se muestra correctamente en condiciones normales de HTML (real UTF-8 é, no &eacute; ni é), estoy bastante seguro de que no es el de PHP/MySQL consulta que está mal (pero yo podría estar equivocado).

EDIT: Esto parece un síntoma de la aplicación de htmlentities, que, por defecto, está codificado en Latin-1, en el texto UTF-8. Existe una posibilidad de que el uso de htmlspecialchars o para especificar el juego de caracteres («utf-8»), pero no sé donde modificar en CKEditor.

InformationsquelleAutor Lazlo | 2011-07-11

3 Comentarios

  1. 8

    Este hilo parece poco anticuado pero respondiendo a ayudar a cualquier persona en busca de una respuesta.

    Para permitir CKEditor a proceso el carácter é como é y no &eacute; establecer la configuración para entities_latin a false, como a continuación:

    config.entities_latin = false;

    O simplemente desea establecer opciones siguientes para falso:

    config.entities = false;
    config.basicEntities = false;
    • Sólo config.entities = false; funciona bien para mí.
  2. 0

    Era mi planteamiento de que estaba mal, no CKEditor es. Estaba buscando en el archivo incorrecto y se perdió la codificación UTF-8 en un htmlspecialchars.

  3. -2

    También se puede utilizar en la conexión de base de datos: $connection->query("SET NAMES 'utf8'");
    Y recuerde establecer db, y/o de la tabla de Intercalación a utf8… prefiero utf8_general_ci

Dejar respuesta

Please enter your comment!
Please enter your name here