Pregunta

Si todo lo que vemos es que el feo de no-char las cajas, ¿qué herramientas o estrategias utiliza para averiguar lo que salió mal?

(La situación específica en la que me estoy enfrentando es no-char cajas dentro de un <select> cuando debería estar mostrando caracteres Japoneses.)

¿Fue útil?

Solución

En primer lugar, "feo no-char cajas" podría no ser un problema de codificación, que puede ser simplemente una señal de que usted no tiene una fuente instalada que puede mostrar los glifos en la página.

La mayoría de los caracteres de la codificación de los problemas ocurren cuando son las cadenas de caracteres que se pasa de un sistema a otro.Para webapps, esto es por lo general entre el navegador y la aplicación, entre la aplicación y el sistema de ficheros y entre la aplicación y la base de datos.

Entonces usted necesita para comprobar si el mal codificado de datos, lo que la codificación de caracteres que tiene en la fuente, y en qué codificación está siendo recibido.La mejor manera es enviar a través de personajes que saben que el sistema está teniendo problemas con el, y examinar en cada nivel de la aplicación.¿Qué aspecto tienen dentro de la aplicación?En la base de datos?Al volver de la base de datos?Cuando se muestran en el navegador?

Siento ser tan general, pero la pregunta no da mucho más a trabajar.

Otros consejos

Si los datos que usted envía a la ventana del navegador se convierte alterados (moji-hornear) obtendrá la basura caracteres.También, si se especifica el conjunto de caracteres incorrecto en su META encabezados, el navegador mostrará la página incorrectamente, provocando moji-hornear de nuevo, a veces en lugares al azar en la página.

Cuando la manipulación de conjuntos de caracteres CJK, usted debe estar seguro de usar UTF-8 codificación de caracteres a lo largo de la duración de su programa (almacenamiento de datos, recuperación, manipulación de datos en el código, mostrando en la browsser etc...)

¿Qué es UTF8? UTF8 maneja flujos binarios de datos, no cadenas.Esto significa que las combinaciones de bits puede tener longitud variable.Los caracteres ASCII tener una longitud fija de 8 bits que representan de 1 byte, sin embargo los caracteres UTF8 puede estar compuesta de 6bits, 8bits, 12bits, etc...Como tal, UTF8 es propenso a lo que los Japoneses llaman "mojibake".

Como programador, a partir de la base de datos a la base de código del navegador, usted debe usar UTF8 completamente.De correo electrónico que usted puede usar UTF8, pero probablemente encontrarás la mayoría de servidores de correo electrónico y los clientes siguen viejo y el uso de una mezcla de diferentes conjuntos de caracteres (por ejemplo,ISO9022X).

Configuración De Base De Datos Si usted es un usuario de mysql, a continuación, asegúrese de que usted tiene que asegurarse de que todas las conexiones a la base de datos usar UTF8, y que todas las tablas/campos de usar UTF8.Por defecto, mysql utiliza latina (sueco) conjuntos de caracteres.Los chiflados de los suecos encanta su sentido del humor!!

La comprobación de su base de Código En mi experiencia editores como Notepad++, Notepad2, UltraEdit, correo, etc...todos tienen UTF8 problemas de compatibilidad.Trabajan en su mayoría, pero ya que sus desarrolladores no uso CJK idiomas sí mismos, no son perfectos.Temas como la desactivación de BOM (Byte Order Mark), trastoca las pestañas, pobre conversión de conjuntos de caracteres, etc ...todos los problemas actuales.

Yo recomiendo el uso de una probada UTF8 editor como Maruo.Esto es hecho por una empresa Japonesa, pero hay una versión en inglés (y una versión de prueba) en http://www.hidemaru.interlink.or.jp/software/

Por último, usted puede necesitar para convertir sus archivos de origen en UTF8.Especialmente si la base de código en sí tiene CJK lenguaje de las cadenas contenidas en el mismo.

La Manipulación De Cadenas Cualquier función de cadena necesidad de multibyte seguro.Noten que no dije de doble byte.UTF8 no es un doble byte, pero multibyte, dependiendo del número total de bits utilizados para representar un carácter.En PHP que usted necesita llamar a la MB funciones de cadena en concreto.Ruby y otros lenguajes más transparentes de apoyo, pero es necesario comprobar la documentación de su sabor de servidor de aplicaciones!

META Tags Echa un vistazo a google.co.jp o yahoo.co.jp para su META encabezados.Estos son los sitios que saber cómo hacerlo correctamente.Básicamente incluir la siguiente etiqueta META la doucment <HEAD>

charset=utf-8">

Generalmente es seguro mezclar HTML inglés tipo de documento de atributos con el anterior personaje demasiado.Así que la adición de la etiqueta META de arriba que parece funcionar en un documento HTML que tiene:

<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en">

Correo electrónico Esta es una subsidiaria de diferentes lata de gusanos.UTF8 trabaja mucho, pero muchos de los antiguos clientes Japoneses uso ISO2022X más.Esto no vale la pena cubrir aquí.

La depuración UTF8 Problemas Una vez que usted tiene una confiable UTF8 editor como Maruo, usted puede crear páginas estáticas y resolver sus problemas.

Espero que ayude

Redirigir los datos a disco y el uso de un Editor Hexadecimal.La mayoría de los editores de texto / visores hacer sus propias conversiones detrás de las escenas, por lo que es difícil estar seguro de que usted está viendo los datos en su forma verdadera.

Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top