2016-05-30 5 views
0

Pour certaines raisons, sur certains navigateurs, une ellipse CP-1252 (0x85) s'affiche sous .... Je crois que le serveur prétend que la page sera en UTF-8 (ne me demandez pas pourquoi un serveur UTF-8 sert le CP-1252, c'est hors de portée). Je comprendrais jeter un avertissement parce que ce n'est pas valide UTF-8. Je comprendrais qu'il apparaisse comme le caractère Latin1 U+0085 NEXT LINE (NEL). Mais je ne peux pas pour la vie de moi comprendre pourquoi il affiche comme U+016F LATIN SMALL LETTER U WITH RING ABOVE.Pourquoi une ellipse CP-1252 s'affiche-t-elle avec un anneau au-dessus (?) Sur certains navigateurs

C'est ce que je vois:

enter image description here

Et voici une hexdump -C du fichier

00000000 78 78 78 78 78 78 78 78 78 78 78 78 78 78 78 78 |xxxxxxxxxxxxxxxx| 
* 
00000030 78 85 3c 2f 69 3e 0d 0a       |x.</i>..| 
00000038 
+0

La seule façon de procéder est que le navigateur ignore le charset signalé de la page et utilise à la place un jeu de caractères différent, tel qu'un remplacement spécifié par l'utilisateur. Mais je ne sais pas quel charset interpréterait 0x85 comme U + 016F. Aucun des jeux de caractères CP-12xx/Windows-12xx, 0x85 est U + 2026 ELLIPSIS HORIZONTAL. Et aucun des ISO-8859-x ne supporte même 0x85. –

+0

J'ai trouvé un jeu de caractères qui interprète 0x85 comme U + 016F: [CP852] (http://www.kreativekorp.com/charset/encoding.php?name=CP852) (DOS Latin-2), à ne pas confondre avec [ ISO-8859-2] (https://en.m.wikipedia.org/wiki/ISO/IEC_8859-2) (ISO Latin-2). –

+0

Merci @RemyLebeau, il semble étrange qu'un navigateur normalement configuré traite un texte comme DOS Latin-2, mais au moins cela a plus de sens que le "c'est magique" que je proposais. Je vais faire d'autres tests pour voir si je peux dupliquer avec des caractères différents. –

Répondre

1

Flagrant mojibake cas. Il était une fois, j'ai écrit un petit script .bat qui montre les mappages des pages de codes OEM et ANSI (les plus connus) à la table Unicode et vice versa. Voici un résultat particulier pour 0x85 code:

==> alts.bat 0x85 
CP/ACP Hex Codepoint #Description :show8bit 133 <--> 0x85) 
------ --- --------- ------------------------ 
CP1250 0x85 0x2026 #HORIZONTAL ELLIPSIS 
CP1251 0x85 0x2026 #HORIZONTAL ELLIPSIS 
CP1252 0x85 0x2026 #HORIZONTAL ELLIPSIS 
CP1253 0x85 0x2026 #HORIZONTAL ELLIPSIS 
CP1254 0x85 0x2026 #HORIZONTAL ELLIPSIS 
CP1255 0x85 0x2026 #HORIZONTAL ELLIPSIS 
CP1256 0x85 0x2026 #HORIZONTAL ELLIPSIS 
CP1257 0x85 0x2026 #HORIZONTAL ELLIPSIS 
CP1258 0x85 0x2026 #HORIZONTAL ELLIPSIS 
CP437 0x85 0x00e0 #LATIN SMALL LETTER A WITH GRAVE 
CP737 0x85 0x0396 #GREEK CAPITAL LETTER ZETA 
CP775 0x85 0x#LATIN SMALL LETTER G WITH CEDILLA 
CP850 0x85 0x00e0 #LATIN SMALL LETTER A WITH GRAVE 
CP852 0x85 0x016f #LATIN SMALL LETTER U WITH RING ABOVE 
CP855 0x85 0x0401 #CYRILLIC CAPITAL LETTER IO 
CP857 0x85 0x00e0 #LATIN SMALL LETTER A WITH GRAVE 
CP860 0x85 0x00e0 #LATIN SMALL LETTER A WITH GRAVE 
CP861 0x85 0x00e0 #LATIN SMALL LETTER A WITH GRAVE 
CP862 0x85 0x05d5 #HEBREW LETTER VAV 
CP863 0x85 0x00e0 #LATIN SMALL LETTER A WITH GRAVE 
CP864 0x85 0x2500 #FORMS LIGHT HORIZONTAL 
CP865 0x85 0x00e0 #LATIN SMALL LETTER A WITH GRAVE 
CP866 0x85 0x0415 #CYRILLIC CAPITAL LETTER IE 
CP869 0x85   #UNDEFINED 
CP874 0x85 0x2026 #HORIZONTAL ELLIPSIS 
CP932 0x85   #DBCS LEAD BYTE 
CP936 0x85   #DBCS LEAD BYTE 
CP949 0x85   #DBCS LEAD BYTE 
CP950 0x85   #DBCS LEAD BYTE 

==> 

et vice versa pour 0x2026 codepoint (désolé pour les mauvaises colonnes de sortie changement dans le cas de lignes non-fenêtres CP):

==> alts.bat 0x2026 
CP/ACP Hex Codepoint #Description :show16bit 8230 <--> 0x2026 
------ --- --------- ------------------------- 
CP1250 0x85 0x2026 #HORIZONTAL ELLIPSIS 
CP1251 0x85 0x2026 #HORIZONTAL ELLIPSIS 
CP1252 0x85 0x2026 #HORIZONTAL ELLIPSIS 
CP1253 0x85 0x2026 #HORIZONTAL ELLIPSIS 
CP1254 0x85 0x2026 #HORIZONTAL ELLIPSIS 
CP1255 0x85 0x2026 #HORIZONTAL ELLIPSIS 
CP1256 0x85 0x2026 #HORIZONTAL ELLIPSIS 
CP1257 0x85 0x2026 #HORIZONTAL ELLIPSIS 
CP1258 0x85 0x2026 #HORIZONTAL ELLIPSIS 
CP874 0x85 0x2026 #HORIZONTAL ELLIPSIS 
CP932 0x8163 0x2026 #HORIZONTAL ELLIPSIS 
CP936 0xA1AD 0x2026 #HORIZONTAL ELLIPSIS 
CP949 0xA1A6 0x2026 #HORIZONTAL ELLIPSIS 
CP950 0xA14B 0x2026 #HORIZONTAL ELLIPSIS 
macCYRILLIC_CP 0xC9 0x2026 #HORIZONTAL ELLIPSIS 
macGREEK_CP  0xC9 0x2026 #HORIZONTAL ELLIPSIS 
macICELAND_CP 0xC9 0x2026 #HORIZONTAL ELLIPSIS 
macLATIN2_CP 0xC9 0x2026 #HORIZONTAL ELLIPSIS 
macROMAN_CP  0xC9 0x2026 #HORIZONTAL ELLIPSIS 
macTURKISH_CP 0xC9 0x2026 #HORIZONTAL ELLIPSIS 

==> 

Pour en savoir plus: Encodings and Code Pages