Google Groups no longer supports new Usenet posts or subscriptions. Historical content remains viewable.
Dismiss

Java, XML og æ ø å

0 views
Skip to first unread message

Martin Bratbo

unread,
May 12, 2004, 8:52:52 AM5/12/04
to
Jeg har nogle metoder der skriver opsætninger til en XML fil, men når
jeg skriver tekster med æ, ø eller å, kommer der en exception nær filen
forsøges indlæst igen:

org.xml.sax.SAXParseException: Character conversion error:
"Unconvertible UTF-8 character beginning with 0xf8" (line number may be
too low).

Det må være noget med forskellige tegnsæt, men hvordan omformes de
danske specialtegn så de er legale i XML

MVH


Martin Bratbo

Thorbjoern Ravn Andersen

unread,
May 12, 2004, 10:02:16 AM5/12/04
to
Martin Bratbo <mar...@bratbo.dk> writes:

> Det må være noget med forskellige tegnsæt, men hvordan omformes de
> danske specialtegn så de er legale i XML

Udskriv alle tegn større end 127 som "&#" + tegnets værdi + ";".

Herved er din XML fil gyldig i alle tegnsæt.

--
Thorbjørn Ravn Andersen
http://unixsnedkeren.dk/ravn

Martin Bratbo

unread,
May 13, 2004, 6:25:03 AM5/13/04
to
Thorbjoern Ravn Andersen skrev:

> Martin Bratbo <mar...@bratbo.dk> writes:
>
>
>>Det må være noget med forskellige tegnsæt, men hvordan omformes de
>>danske specialtegn så de er legale i XML
>
>
> Udskriv alle tegn større end 127 som "&#" + tegnets værdi + ";".
>
> Herved er din XML fil gyldig i alle tegnsæt.
>
Tak det hjalp.
Jeg har tidligere prøvet med &aelig;,&oslash; og &aring;.
Hvilket ikke virkede.

Thorbjoern Ravn Andersen

unread,
May 13, 2004, 8:35:14 AM5/13/04
to
Martin Bratbo <mar...@bratbo.dk> writes:

> Jeg har tidligere prøvet med &aelig;,&oslash; og &aring;.
> Hvilket ikke virkede.

Nej, det kræver at du husker at referere til en HTML DTD. Den skal så
også være tilgængelig for de XML-parsere der skal behandle din XML.

Du ved, at Internet Explorer kan vise XML-filer og fortælle dig hvis
der er noget galt?

Soren Kuula

unread,
May 13, 2004, 9:57:15 PM5/13/04
to
Thorbjoern Ravn Andersen wrote:
> Martin Bratbo <mar...@bratbo.dk> writes:
>
>
>>Det må være noget med forskellige tegnsæt, men hvordan omformes de
>>danske specialtegn så de er legale i XML
>
>
> Udskriv alle tegn større end 127 som "&#" + tegnets værdi + ";".
>
> Herved er din XML fil gyldig i alle tegnsæt.
>
Alternativt, så skriv den encoding du bruger i xml tingesten, f.x.:

<?xml version="1.0" encoding="ISO-8859-1"?>
...
...

De fleste i DK bruger ISO-8859-1.

Eller brug (min anbefaling):
<?xml version="1.0" encoding="UTF-8"?>

of få din editor til at gemme i UTF-8.

Hvorfor synes jeg det ? Fordi ISO-8859-1 stort set kun dur til noget
Vesteuropa. UTF-8 supporter alle sprog, og mange meget eksotiske oveni.
Programmer som ikke supporter UTF-8 (eller rettere: Unicode) ordentligt
bør identificeres og spærres inde :)

MVH
Søren
--
Fjern de 4 bogstaver i min mailadresse som er indsat for at hindre s...
Remove the 4 letter word meaning "junk mail" in my mail address.

kgc

unread,
May 14, 2004, 1:21:34 AM5/14/04
to
> Hvorfor synes jeg det ? Fordi ISO-8859-1 stort set kun dur til noget
> Vesteuropa. UTF-8 supporter alle sprog, og mange meget eksotiske oveni.
*Fnis* alle sprog + nogle flere?? :-)

> Programmer som ikke supporter UTF-8 (eller rettere: Unicode) ordentligt
> bør identificeres og spærres inde :)

Hmm, er der egentlig nogen grund til at benytte Unicode hvis man nu
laver noget på dansk? Selvfølgelig er det smart, hvis man er
interesseret i hele verden som målgruppe, men det er man måske ikke
altid? Så længe man bare angiver og benytter kodning konsistent, må det
vel være OK? Der er vel også et overhead forbundet med at benytte
Unicode (er der ikke noget med at hvert tegn fylder 2 bytes mod
"normalt" 1?)

Mvh. Kasper


--
Besøg mig på nettet: http://www.kaspershjemmeside.dk

Martin Bratbo

unread,
May 14, 2004, 3:56:00 AM5/14/04
to
Soren Kuula skrev:

> Thorbjoern Ravn Andersen wrote:
>
>> Martin Bratbo <mar...@bratbo.dk> writes:
>>
>>
>>> Det må være noget med forskellige tegnsæt, men hvordan omformes de
>>> danske specialtegn så de er legale i XML
>>
>>
>>
>> Udskriv alle tegn større end 127 som "&#" + tegnets værdi + ";".
>>
>> Herved er din XML fil gyldig i alle tegnsæt.
>>
> Alternativt, så skriv den encoding du bruger i xml tingesten, f.x.:
>
> <?xml version="1.0" encoding="ISO-8859-1"?>
> ...
> ...
>
> De fleste i DK bruger ISO-8859-1.
>
> Eller brug (min anbefaling):
> <?xml version="1.0" encoding="UTF-8"?>
>
> of få din editor til at gemme i UTF-8.
>
> Hvorfor synes jeg det ? Fordi ISO-8859-1 stort set kun dur til noget
> Vesteuropa. UTF-8 supporter alle sprog, og mange meget eksotiske oveni.
> Programmer som ikke supporter UTF-8 (eller rettere: Unicode) ordentligt
> bør identificeres og spærres inde :)
>
> MVH
> Søren

Tricket med at encode alle tegn over 127 er en robust løsning, der så
vidt jeg kan se virker upåklageligt. Der er andre en mig selv der skal
vedligeholde de tekstfiler der er ophav til XML'en. Filerne er
tekstfiler der parses af en javacc parser, hvis der var specielle krav
til tegnsætinstillignen, ville det give en masse fejl og generere ekstra
supportbehov.


MVH

Martin bratbo

Jonas Kongslund

unread,
May 14, 2004, 4:36:08 AM5/14/04
to
On Friday 14 May 2004 07:21, kgc wrote:
> Hmm, er der egentlig nogen grund til at benytte Unicode hvis man nu
> laver noget på dansk? Selvfølgelig er det smart, hvis man er
> interesseret i hele verden som målgruppe, men det er man måske ikke
> altid? Så længe man bare angiver og benytter kodning konsistent, må det
> vel være OK? Der er vel også et overhead forbundet med at benytte
> Unicode (er der ikke noget med at hvert tegn fylder 2 bytes mod
> "normalt" 1?)

Overheadet er negligerbart indtil andet er bevist.
--
Jonas Kongslund

Thorbjoern Ravn Andersen

unread,
May 14, 2004, 4:52:30 AM5/14/04
to
kgc <ne...@kaspershjemmeside.dk> writes:

> det vel være OK? Der er vel også et overhead forbundet med at benytte
> Unicode (er der ikke noget med at hvert tegn fylder 2 bytes mod
> "normalt" 1?)

Ja. Derfor benytter man UTF-8 til at gemme det med.

Hvis enten pladsforbrug eller cpukraft er en størrelse der skal tages
hensyn til, bør man vælge noget andet end XML.

kgc

unread,
May 14, 2004, 5:38:11 AM5/14/04
to
>>det vel være OK? Der er vel også et overhead forbundet med at benytte
>>Unicode (er der ikke noget med at hvert tegn fylder 2 bytes mod
>>"normalt" 1?)
>
>
> Ja. Derfor benytter man UTF-8 til at gemme det med.
OK - jeg er åbenbart ikke klar over hvad UTF-8 er, havde blot læst det
som synonymt med unicode - beklager.

> Hvis enten pladsforbrug eller cpukraft er en størrelse der skal tages
> hensyn til, bør man vælge noget andet end XML.

Du har en god pointe der. XML's styrker ligger andre steder :-)

Betyder dette at det i princippet er fjollet, at XML overhovedet er
tilladt i andre encodings?

Thorbjoern Ravn Andersen

unread,
May 14, 2004, 6:35:47 AM5/14/04
to
kgc <ne...@kaspershjemmeside.dk> writes:

> > Ja. Derfor benytter man UTF-8 til at gemme det med.
> OK - jeg er åbenbart ikke klar over hvad UTF-8 er, havde blot læst det
> som synonymt med unicode - beklager.

Ingen årsag. UTF-8 er en indkodningsform af Unicode som benytter 1-3
bytes til at repræsentere et 16-bits unicodetegn. Dens hovedforce er
at tegn under 127 (US-ASCII) ikke skal specialbehandles, hvorfor at
amerikanere kan bruge det uden yderligere dikkedarer.

> Betyder dette at det i princippet er fjollet, at XML overhovedet er
> tilladt i andre encodings?

Smagssag. XML-standarden tillader kun ganske få indkodninger. De
enkelte parsere kan sagtens tilbyde flere.

Lasse Reichstein Nielsen

unread,
May 14, 2004, 3:19:44 PM5/14/04
to
kgc <ne...@kaspershjemmeside.dk> writes:

> OK - jeg er åbenbart ikke klar over hvad UTF-8 er, havde blot læst det
> som synonymt med unicode - beklager.

Unicode er en definition der giver talværdier til tegn (glyffer?).
Der er fx 65 det latinske bogstav "stort A", mens 945 er lille græsk
alpha.

UTF-8 er en kodning af Unicode der er baseret på blokke af otte bits.
Et tegn kodes som et eller flere bytes. Stort A kodes med en byte med
værdien 65. Alpha kodes som to eller flere bytes.

UTF-8-kodningen har den fordel at den ikke fylder mere end ASCII hvis
man holder sig til ASCII-tegnene.

/L
--
Lasse Reichstein Nielsen - l...@hotpop.com
DHTML Death Colors: <URL:http://www.infimum.dk/HTML/rasterTriangleDOM.html>
'Faith without judgement merely degrades the spirit divine.'

Soren Kuula

unread,
May 15, 2004, 4:13:21 AM5/15/04
to

Der ER da noget smart ved det :) - - nemlig at man ved at ens kode
virker i en anden kontekst også.
Ja, det er nok at være konsistent. Men alt for mange programmører (synes
jeg) bruger at ISO (som typisk er platform default på deres computere)
virker OK her, som en slags sovepude. De laver så kode fuld af
implicitte antagelser - f. eks. at et tegn er en byte - som i bedste
fald ikke er særlig genbrugelig. Og de beholder en dårlig vane ...

En ekstra byte på æ ø å ofrer jeg gerne .. det er je 0.00... nanoøre :)

Thorbjoern Ravn Andersen

unread,
May 15, 2004, 8:09:54 AM5/15/04
to
kgc <ne...@kaspershjemmeside.dk> writes:

> Hmm, er der egentlig nogen grund til at benytte Unicode hvis man nu
> laver noget på dansk? Selvfølgelig er det smart, hvis man er

Det giver dig fx adgang til euro-tegnet.

0 new messages