2010-01-26 16 views
5

Il sito da cui sto chiamando la funzione window.open() è in UTF-8, utilizzando il tag <meta>, tutto funziona correttamente, ma una volta chiamo la funzione e apro un'altra finestra con stesso tag, la nuova finestra mostra strani personaggi anche se pensati nelle informazioni della pagina mostra che la codifica rimane la stessa (UTF-8).La codifica dei caratteri cambia dopo window.open()

Questo è lo stesso problema come il mio: http://bytes.com/topic/javascript/answers/622922-character-encoding-after-window-open

risposta

0

Se il browser utilizza la stessa codifica per entrambe le pagine (che, a quanto pare, lo fa), allora il problema deve essere nella pagina stessa. Probabilmente contiene UTF-8 non valido per cominciare.

+0

No, è scritto nello stesso editor (che funziona bene). Inoltre, se non lo apro in una nuova finestra, funziona correttamente. – LuRsT

+0

Strano ... Puoi riprodurlo in un altro browser? – Thomas

+0

Sì, è lo stesso in FF 3.5 e in ie8. Ho anche aggiunto un link alla mia domanda su qualcuno con lo stesso problema. – LuRsT

2

Ho avuto esattamente lo stesso problema.

Si è verificato un problema durante il quale è stato impostato "Session.CodePage = 65001" nella finestra aperta. Ciò ha rovinato la codifica dei personaggi per quella sessione. Quindi, quando ho aggiornato la pagina "principale", alcuni personaggi (come ad esempio åäö) sono stati improvvisamente confusi.

Soluzione: assicurarsi che la pagina nella nuova finestra non cambi la codepage della sessione. In bocca al lupo!

2

Ho avuto lo stesso problema. Basta usare unescape(decodeURIComponent(YOUR_URL)) all'interno di window.open().

Ad esempio: window.open(unescape(decodeURIComponent(YOUR_URL)), '_blank');

Speranza che aiuta.

1

Aggiungi un set di caratteri = "UTF-8" ai tag javascript. Questo funzionerà almeno se la causa dei caratteri confusi è il javascript incluso.

Problemi correlati