» »

[JAVA] parsanje XML v UTF-8

[JAVA] parsanje XML v UTF-8

DuleKrtola ::

Parsam neke xml fajle, ki jih dobivam z nekega strežnika. Text je v UTF-8 in tu pa tam se pojavi kakšen ruski znak, ki ga ne znam sparseat.
Npr tale:
ŕ (UTF 0x155)
Če bi bil v XMLju zapisan tako, kot je zgoraj, problemov ne bi bilo. Je pa dejansko zapisan kot , torej z dvema znakoma. S tema dvema znakoma namreč dobiš ŕ na tikovnici - pritisneš r in altgr+7 (vsaj na slo tipkovnici).

1. Je to sploh pravilno? Če XML na vrhu pravi, da uporablja UTF-8, mar ne bi moral zapisat znak z pripadajočo UTF kodo, ne pa z nekim zapordjem, ki je dejansko ambiguous?

2. Je v JAVI kakšen trik, da poloviš te znake? Ne vem niti, kako bi tole pogooglal.

Uporabljam pa JSoup parser:
responsePost = client.execute(post);
HttpEntity resEntity = responsePost.getEntity();  
String response= EntityUtils.toString(resEntity,"UTF-8");
// tukaj bi polovil še te znake
Document doc=Jsoup.parse(response, "", Parser.xmlParser());

Spura ::

Kaj pa ce namesto JSoup uporabis navaden DOM parser? Na splosno lahko v unicode characterji ostajajo v vecih oblikah, zato je vcasih potrebna normalizacija:

https://weblogs.java.net/blog/joconner/...

Zgodovina sprememb…

  • spremenil: Spura ()

DuleKrtola ::

Kaj pa ce namesto JSoup uporabis navaden DOM parser?

Ni šans, preveč dela. Poleg tega je parser že v redu.

V linku ki si ga podal je tisti znak escapean, normalizacija tega ni problem. Pri mojih XMLjih je težava, da nekateri znaki niso zapisani v UTF-8, niti escepani, ampak so zapisani kot "sekvenca tipk", ki naredi ta znak.

DuleKrtola ::

Normalizer did the trick:
http://docs.oracle.com/javase/tutorial/...
Sicer se mi zdi, da se je vrinil nek presledek po normalizaciji. Doh :/

DuleKrtola ::

To je problematičen text:
Valer´evič

Normalizacija po NFC ne naredi nič, NFKC pa zamenja znak, vendar vrne še en presledek. Kakšna ideja?

win64 ::

Kaj pa html encode vrednosti?
Mimogrede, to bi moralo narediti samo.

DuleKrtola ::

Spura, imaš kakšno idejo od kje pride tisti presledek pri NFKC? In zakaj NFC pravi, da je normalized, čeprav ni?

Spura ::

NFC zdruzuje samo canonical equivalents, NFKC pa tudi compatibility equivalents.

http://www.unicode.org/reports/tr15/tr1...


Vredno ogleda ...

TemaSporočilaOglediZadnje sporočilo
TemaSporočilaOglediZadnje sporočilo
»

Davčne blagajne (strani: 1 2 3 424 25 26 27 )

Oddelek: Programiranje
1344332633 (72636) Macketina
»

[JAVA] HTTPS client

Oddelek: Programiranje
173177 (1907) peterv6i
»

MSSQL UTF-8 in šumniki

Oddelek: Programiranje
122039 (1790) biasko

python pomoč

Oddelek: Programiranje
393407 (2328) Mavrik
»

Avtomatično prepoznati POST spremenljivke

Oddelek: Programiranje
121577 (1370) AnonimkeOP

Več podobnih tem