Domanda

Ho un alcuni caratteri cinesi che sto cercando di visualizzare su un sito web Kentico-powered. Questo testo è di copia / incollato in editor di Kenticos FCK, e viene quindi salvato e appare sul sito. In Firefox, Chrome e Safari, i caratteri vengono visualizzati esattamente come previsto. In modalità IE 8 Standard, vedo solo scatole.

Il testo è codifica UTF-8, e per quanto ne so, è codificato in modo corretto nella risposta dal server. C'è un colpo di testa di risposta Content-Type: text/html; charset=utf-8, e un meta tag <meta http-equiv="content-type" content="text/html; charset=UTF-8" /> sulla pagina anche. Quando scarico il codice HTML dal server e confrontare i byte dei personaggi in questione alla UTF-8 documento di testo originale, i byte tutti i match, tranne il codice HTML non include una distinta base.

Questo sembra essere specifico per IE 8 in modalità Standard. In IE 8 Quriks: funziona. IE 7 Standard: funziona. IE 7 Quirks: Works. Io non sono sicuro di come modalità standard potrebbe causare questo problema.

Stranamente, se osservo-source da IE, i personaggi mostrano in vista origine correttamente.

Qualche suggerimento su quello che potrebbe essere sbagliato? Mi sto perdendo qualcosa di ovvio?

È stato utile?

Soluzione

Non riesco a spiegare questo in dettaglio. Ma questo è davvero un problema noto.

Ecco un piccolo frammento di codice riproducibili:

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

Salva in UTF-8 e vista in IE8. Si vede nulla. Sostituire 0 0 da 00 e ricaricare la pagina. Che funzionerà bene! Questo è assolutamente sorprendente. Stranamente, in sostituzione di 0 0 dal a a o <br> da un </p><p> lo risolverà pure. Avrà a che fare con gli errori nel rendering spazi bianchi.

Mi dispiace, non hanno risorse autorevoli che dimostrano questo, ma questo è solo un'altra prova IE8 non è così buona come ci aspettiamo che sia. La cosa migliore è cercare di cambiare il codice HTML e / o costruire un passo alla volta in modo che funzioni ad un certo punto o quando invano, aggiungere il seguente meta tag alla testa per forzare IE8 in modalità IE7:

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

Altri suggerimenti

La codifica IE predefinito è Europa occidentale (ISO) quindi è necessario cambiare manualmente in UTF-8 o far valere IE di utilizzare una determinata codifica in questo modo:

  • HTML 4.01

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

  • HTML 5

    <meta charset="UTF-8">

E anche voi bisogno di attribuire l'uso lang in tag <html> di dichiarare la lingua

    <html lang="zh">

per il cinese

Solo un ipotesi, ma potrebbe essere un problema di carattere. Forse i font disponibili per il browser puo' rappresentare suddette caratteristiche cinesi.

Sono riuscito a risolvere lo stesso problema modificando formato UTF del file per "UTF8 Con Byte Order Mark".

(L'uso editor di Io mi permette di passare facilmente i formati di file, non è sicuro su come procedere in caso contrario, ma vale la pena dare un'occhiata ai diversi formati di file UTF, IE (8) semplicemente non lo fa come UTF8 Senza Byte Order Marks. ..)

sono stato anche in grado di riprodurre il frammento della risposta di cui sopra;

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

Ma i miei risultati sono stati "intermittenti", mentre in UTF-senza BOM (talvolta accenti rivelerebbe, altre volte i chars strane, e non sembrava un problema di rendering spazio bianco a me ...) Nota che ero giocherellare con lang = "it" e lang = "es", ma in tutti i casi, la modifica del formato di file UTF sembra aver definitivamente risolto i miei accenti problemi di visualizzazione. :)

Io non sono al 100% familiarità con UTF, ma se i caratteri sono codificati usando 2 byte, si dovrebbe supporre che le questioni bianco-spazio e caratteri fraintesi potrebbe essere correlato a byte disallineato in fonti.

Questo potrebbe essere lo stesso tipo di cosa che ha causato Rails 3 per aggiungere un personaggio pupazzo di neve per la loro produzione: Qual è il param _snowman in Ruby on Rails 3 moduli per?

Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top