[ nowa @ 05.06.2008. 14:50 ] @
Ukoliko xml fajl sadrzi karakter "ö", IE7 nece da ga prikaze, i prijavljuje gresku:
"An invalid character was found in text content. Error processing resource 'file:///C:/Documents and Settings..."
Firefox ga prikazuje, ali sa znakom pitanja na mestu tog karaktera.
Kako da ubacim "ö", a da se browser ne buni?
[ mmix @ 05.06.2008. 15:10 ] @
Koji ti je encoding XML fajla? i gde je ö? (u imenu taga ili unutar node-a?)
[ jablan @ 05.06.2008. 16:45 ] @
Code:
ö


Obično je problem do usklađivanja enkodinga u samom fajlu sa onim što piše u njegovom zaglavlju. Ako u zaglavlju xml-a piše da je fajl u UTF-8, a ti u njega probaš da ubaciš karakter koji nije UTF-8, u boljem slučaju dobićeš kuke i kvake, a u gorem ćeš dobiti neispravan XML fajl.
[ mmix @ 05.06.2008. 17:35 ] @
Ja koliko znam UTF-8 pokriva kompletan Unicode spektar, isto kao UTF-16, samo ima drugi encoding mehanizam koji favorizuje sadrzaj sa predominantno ASCII kodom, tako da ne postoji karakter koji nije UTF-8. Najverovatnije je problem sto mu je zaglavlje UTF-8 a sam fajl je na disk snimljen u nekom drugom regionalnom single-byte encodingu pa se kod njega u editoru vidi kako treba ali UTF-8 parsiranje u XML DOMu puca jer taj karakter verovatno ima 8-i bit = 1 sto navodi UTF dekoder da ga tretira kao prvi byte u multi-byte sekvenci.
[ Dragi Tata @ 05.06.2008. 18:06 ] @
Citat:
mmix: Najverovatnije je problem sto mu je zaglavlje UTF-8 a sam fajl je na disk snimljen u nekom drugom regionalnom single-byte encodingu pa se kod njega u editoru vidi kako treba ali UTF-8 parsiranje u XML DOMu puca jer taj karakter verovatno ima 8-i bit = 1 sto navodi UTF dekoder da ga tretira kao prvi byte u multi-byte sekvenci.


Upravo tako. Otvorio je XML fajl kao Latin-1 encoding i dodao o sa umlautom i snimio, pa je taj znak snimljen kao 0x00f6, a kad parser očekuje UTF-8, onda prsne, jer je po UTF-8 standardu o-umlaut sekvenca dva bajta: C3 B6
[ jablan @ 05.06.2008. 18:43 ] @
Citat:
mmix: ne postoji karakter koji nije UTF-8

Moj tipfeler, rekao sam "karakter koji nije UTF-8", a mislio "karakter koji nije UTF-8 enkodovan".
[ nowa @ 06.06.2008. 11:38 ] @
Hvala na odgovorima, ali problem nisam uspeo da resim. Fajl nema deklaraciju encoding-a, i u konkretnom slucaju ne zelim da je ima.
Dakle, "problematicni" xml fajl izgleda ovako:

<Button imageGroup="financials" actionType="button">Börsenakademie<Link url="http://pro.com"/>
</Button>

Pokusao sam da ubacim &ouml; i dobijam poruku:

The XML page cannot be displayed
Cannot view XML input using XSL style sheet. Please correct the error and then click the Refresh button, or try again later.
The operation completed successfully. Error processing resource 'file:///C:/Documents and Settings/ivan.jovovic/Desktop/Cop...
<Button imageGroup="financials" actionType="button">B&ouml;rsenakademie<Link url="http://pro...





[ Dragi Tata @ 06.06.2008. 14:57 ] @
Citat:
nowa: Hvala na odgovorima, ali problem nisam uspeo da resim. Fajl nema deklaraciju encoding-a, i u konkretnom slucaju ne zelim da je ima.


Pogledaj XML spec: http://www.w3.org/TR/REC-xml/#charencoding

Ukratko, ako nemaš deklaraciju encodinga, parser smatra da je fajl Unicode, tj UTF-16 ako ima odgovarajući Byte Order Mark na početku, a u suprotnom UTF-8.

Dakle, kad kažeš da si "ubacio" &ouml u fajl, bilo bi dobro da daš malo više podataka: kako i kojim editorom. Kao što rekoh, kladim se da je tvoj editor otvorio fajl kao Latin-1 encodovan i kad si uneo ouml, snimio je F6 umesto C3B6. Vidi da li imaš opciju da snimiš fajl u UTF-8 encodingu.
[ nowa @ 06.06.2008. 15:29 ] @
Problem resen :).
Kao sto ste sugersali, trebalo je samo snimiti fajl u odredjenom encoding-u. Dobro rade i UTF-8 i UCS-2.
Hvala na pomoci!