Pregunta

Tengo algunos caracteres chinos que estoy tratando de visualización en una página web Kentico-Powered. Este texto es copiar / pegar en el editor Kenticos FCK, y luego se guarda y aparece en el sitio. En Firefox, Chrome y Safari, los caracteres aparecen exactamente como se esperaba. En el modo de IE 8 Normas, sólo veo las cajas.

El texto es codificación UTF-8, y por lo que puedo decir, que está codificado correctamente en la respuesta del servidor. Hay una cabecera de respuesta Content-Type: text/html; charset=utf-8, y una etiqueta meta <meta http-equiv="content-type" content="text/html; charset=UTF-8" /> en la página también. Al descargar el código HTML desde el servidor y comparar los bytes de los caracteres en cuestión al documento original texto UTF-8, los bytes de todo el partido, excepto el código HTML no incluye una lista de materiales.

Esto parece ser específica a IE 8 en modo estándar. En IE 8 Quriks: funciona. Normas 7 IE: funciona. IE 7 Quirks: Obras. No estoy seguro de cómo las normas de modo que causaría este problema.

Curiosamente, si ver el código fuente de IE, los caracteres aparecen en la vista de origen correctamente.

¿Alguna sugerencia sobre lo que podría ser mal aquí? Me estoy perdiendo algo obvio?

¿Fue útil?

Solución

No se puede explicar esto en detalle. Pero esto es de hecho un problema conocido.

Aquí hay un pequeño fragmento de código reproducibles:

<!DOCTYPE html>
<html lang="en">
    <head><title>test</title></head>
    <body><p>&#65185;<br>0 0</p></body>
</html>

Guardar en UTF-8 y vista en IE8. No se ve nada. Reemplazar 0 0 por 00 y volver a cargar la página. Se va a trabajar bien! Esto es absolutamente sorprendente. Extrañamente, en sustitución de 0 0 por a a o la <br> por un </p><p> lo arreglará también. Tendrá algo que ver con los fallos en representación de los espacios en blanco.

Lo sentimos, no tengo recursos authorative que prueben esto, pero esto es sólo una prueba más IE8 no es tan bueno como esperamos que sea. Su mejor apuesta es tratar de cambiar el código HTML y / o construir paso a paso para que funcione en algún momento o cuando en vano, agregue la siguiente etiqueta meta en la cabeza para obligar a IE8 en modo de Internet Explorer 7:

<meta http-equiv="X-UA-Compatible" content="IE=7" />

Otros consejos

La IE codificación por defecto es de Europa occidental (ISO) por lo que hay que cambiar manualmente a UTF-8 o hacer cumplir IE para utilizar una codificación determinada de esta manera:

  • HTML 4.01

    <meta http-equiv="content-type" content="text/html; charset=UTF-8">

  • HTML 5

    <meta charset="UTF-8">

Y también hay que atributo de uso en la etiqueta lang <html> para declarar la lengua

    <html lang="zh">

para el chino

Sólo una conjetura salvaje, pero podría ser un problema de la fuente. Tal vez las fuentes disponibles en su navegador puede' representar dichos caracteres chinos.

He conseguido solucionar el mismo problema cambiando el formato UTF del archivo a "UTF-8 con el byte marca de orden".

(El uso editor que me permite cambia de formatos de archivos fácilmente, no está seguro de cómo proceder de otro modo, pero vale la pena echar un vistazo a los diferentes formatos de archivo UTF, IE (8) simplemente no le gusta UTF8 Sin marcas de orden de bytes. ..)

También fue capaz de reproducir el fragmento de la respuesta anterior;

<!DOCTYPE html>
<html lang="en">
    <head><title>test</title></head>
    <body><p>&#65185;<br>0 0</p></body>
</html>

Pero mis resultados eran "intermitente", mientras que en UTF-Sin BOM (a veces acentos aparecerían, en otras ocasiones contengan los caracteres extraños, y no se parecía a un problema de espacio en blanco de representación a mí ...) Tenga en cuenta que yo estaba jugando con lang = "fr" y lang = "es", pero en todos los casos, cambiar el formato de archivo UTF parece haber resuelto definitivamente mis acentos problemas de presentación. :)

No estoy 100% familiar con UTF, pero si los caracteres se codifican usando 2 bytes, habría que suponer que los problemas de espacio en blanco y caracteres mal entendido podría estar relacionado con bytes desalineados en las fuentes.

Esto puede ser el mismo tipo de cosa que causó Rails 3 para añadir un carácter muñeco de nieve a su producción: ¿Cuál es el parámetro _snowman en Ruby on Rails 3 formas para?

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