Representación de diéresis (åäö) en IE8 e IE9 con Verdana

Have this strange problems on some pages that rendering of umlauts (åäö) gets wrong in IE8 and IE9, sometimes. The encoding is utf-8 (mostly of the site works so I know it's correct) and I have tried to narrow down the css-classes and it seems that Verdana is only affected. Tried different computers as well.

I thougth I could be the meta X-UA-Compatible-related and changed to this tag with no luck.

<meta http-equiv="X-UA-Compatible" content="IE=edge,chrome=1">

Así es como debería verse:

enter image description here

And this is the result in IE8 and IE9

enter image description here

preguntado el 09 de marzo de 12 a las 14:03

Is this a problem at any font size/weight? -

If you change the encoding to latin1 of the delivered HTML file (and set the tags appropriately), does it work correctly? Could you show us a HTML sample (simple) file where this occurs? -

Have a link to a page? I never saw behaviour like this in IE8 and I want to see for myself. -

Yes, looks like a font rendering bug in IE, but it surprises me that this occurs in 9 as well. 8 was pretty bad, but 9 is slightly better. A link would be helpful :) -

I had a similar problem and I solved with ctrl + 0 (zoom reset to default) because I used ctrl- once and stupid IE render always with that zoom in (ctrl-). Hope will work. -

1 Respuestas

The problem manifests itself because, although the text is encoded in valid UTF-8, the descompuesto Unicode normalization form is used, see Equivalencia Unicode. It seems that on Windows many fonts work best when using usual single precomposed characters, not the sequences of base letters with combining diacritical marks separately followed.

For example, let's take a look at the word från with a hex editor.

On your site it's encoded as 66 72 61 CC 8A 6E (i.e. latin small letters f, r, a, entonces U+030A code point representing combining ring above, entonces n).

But in Windows the usual encoding would be 66 72 C3 A5 6E (i.e. latin small letters f, r, å, n). So the letter å would normally be represented by a single code point U+00E5 (not by the sequence U+0061, U+030A).

If you are using PHP, try normalizing the text with the Clase de normalizador first (just be sure the intl extension is installed).

Respondido el 14 de Septiembre de 12 a las 11:09

This was it. I used the following: $normlizer = new \Normalizer(); $content = $normlizer->normalize($content, \Normalizer::FORM_C); Basically FORM_C and FORM_KC work well for fixing the issue. - User366

No es la respuesta que estás buscando? Examinar otras preguntas etiquetadas or haz tu propia pregunta.