Portál AbcLinuxu, 6. května 2025 14:09

Dotaz: neznámé kódování v XML

10.11.2010 20:34 Ladislav Nešněra | skóre: 30 | blog: ..+2
neznámé kódování v XML
Přečteno: 768×
Odpovědět | Admin
Potřeboval bych analyzovat záznamy v HelpDesku. Neboť umožňuje výstup v XML, zvolil jsem cestu transformace do csv a pak zpracování v tabulkovém procesoru. Žel narazil jsem na dvojí kódování ve vstupním souboru a ten druhý navíc nepoznávám. Tušíte někdo, co je to zač? Díky


Řešení dotazu:


Nástroje: Začni sledovat (0) ?Zašle upozornění na váš email při vložení nového komentáře.

Odpovědi

10.11.2010 20:45 Šangala | skóre: 56 | blog: Dutá Vrba - Wally
Rozbalit Rozbalit vše Re: neznámé kódování v XML
Odpovědět | | Sbalit | Link | Blokovat | Admin
Druhý řádek je asi 2× překódovaný & = &, tudíž &#FD = &#FD = ý
To, že trpíš stihomamem, ještě neznamená, že po tobě nejdou. ⰞⰏⰉⰓⰀⰜⰉ ⰗⰞⰅⰜⰘ ⰈⰅⰏⰉ ⰒⰑⰎⰉⰁⰕⰅ ⰏⰉ ⰒⰓⰄⰅⰎ ·:⁖⁘⁙†
10.11.2010 20:51 Šangala | skóre: 56 | blog: Dutá Vrba - Wally
Rozbalit Rozbalit vše Re: neznámé kódování v XML
Opravička: …tudíž: &#xFD = &#xFD = ý
Hexadecimální zápis a navíc překódovaný.
To, že trpíš stihomamem, ještě neznamená, že po tobě nejdou. ⰞⰏⰉⰓⰀⰜⰉ ⰗⰞⰅⰜⰘ ⰈⰅⰏⰉ ⰒⰑⰎⰉⰁⰕⰅ ⰏⰉ ⰒⰓⰄⰅⰎ ·:⁖⁘⁙†
10.11.2010 20:50 Filip Jirsák | skóre: 68 | blog: Fa & Bi
Rozbalit Rozbalit vše Re: neznámé kódování v XML
Odpovědět | | Sbalit | Link | Blokovat | Admin
Kdyby tady ten soubor byl přiložen, můžeme se na to třeba zkusit podívat. Ale křišťálovou kouli, abychom to poznali bez ukázky, asi nikdo nemá. Nebo zkuste použít nástroj Enca.
10.11.2010 21:00 Ladislav Nešněra | skóre: 30 | blog: ..+2
Rozbalit Rozbalit vše Re: neznámé kódování v XML
Jasně že by to s originálním XML šlo líp, ale jsem vázán mlčenlivostí. Měl jsem to uvést už v dotazu. Omlouvám se ;?)
10.11.2010 21:16 Filip Jirsák | skóre: 68 | blog: Fa & Bi
Rozbalit Rozbalit vše Re: neznámé kódování v XML
Stačilo by kousek. Až po odeslání komentáře jsem zjistil, že součástí dotazu je obrázek – já mám obrázky v komentářích zakázané, takže tam nic nevidím. kdybyste místo toho obrázku přiložil textový soubor s jeho obsahem, bylo by to lepší. Ostatně ten obsah šlo vložit i přímo do textu dotazu.
10.11.2010 22:16 Ladislav Nešněra | skóre: 30 | blog: ..+2
Rozbalit Rozbalit vše Re: neznámé kódování v XML
Příloha:
nakonec jsem nějaký nezávadný kousek jsem našel. Snad bude stačit ;?)

To přímé vložení jsem zkoušel, ale co je UTF8 v HTML, je přímo nahrazeno, proto ty přílohy/obrázky..
10.11.2010 22:57 Filip Jirsák | skóre: 68 | blog: Fa & Bi
Rozbalit Rozbalit vše Re: neznámé kódování v XML
Některé znaky musely už v tom vstupu být zakódovány jako XML entity, a v tom dokumentu jsou pak zakódovány podruhé. Jiné znaky s diakritiky jsou ale zakódovány jen jednou. Každopádně když ten obsah načtete jako XML text, dostanete z toho tohle:
Při uzavírání spisu XXX se objevila chyba v synchronizaci, která není specifikována, pro nevím, jak ji odstranit. Prosím o nápravu. Povšimla jsem si (jedná se o toitž již o třetí případ), že chyba se objeví vždy, když chci uložit změny do karty případu.
To je pak znova potřeba interpretovat jako zdrojový kód XML v kódování Windows-1250, tj. třeba okolo toho znova přidat nějaké XML značky.

Můžete si to vyzkoušet třeba ve webovém prohlížeči, který umí zobrazovat i XML – zobrazit původní dokument jako XML v kódování Windows-1250, okopírujte si zobrazený obsah do schránky, vložte v textovém editoru do souboru, přidejte na začátek <a> a na konec </a>, uložte, a výsledek znova zobrazte v prohlížeči v kódování Windows-1250.
11.11.2010 19:46 Ladislav Nešněra | skóre: 30 | blog: ..+2
Rozbalit Rozbalit vše Re: neznámé kódování v XML
Potvrzení pravděpodobné teorie, jak k této podivnosti dochází jsem našel zde

Jak věští ve své reakci Šangala, kódování je utf-8 s hex zápisem entity.

Ruční postup pomocí browseru funguje, ale v zamýšlená transformaci se mi těch entit zbavit nepodařilo (prakticky nulové zkušenosti s XSL)
11.11.2010 19:44 Šangala | skóre: 56 | blog: Dutá Vrba - Wally
Rozbalit Rozbalit vše Re: neznámé kódování v XML
Jak jsem Vám hned napsal, je to 2× překódované - klasika...
Anebo to není 2× překódované, ale je to tak správně - je to věcí pohledu:
Máte HTML validní data (řetězce) a ty používají pro diakritiku hexadecimální zápis znaků tj. &xXX.
A ty data uložíte do XML dokumentu a v XML dokumentu se znak & nahradí za &amp;, protože tak je to správně. - HA! :)

Když ta data vytahujete libovolným parsrem XML, měl by vám vrátit, validní HTML kód (tj. &xXX)
Prostě jsou to HTML data uložena v XML.
Je to obdoba, jako když se do DB ukládají HTML data, jenže tam to netrkne, bo se to tam zapisuje tak jak to je, ale XML dokument má některá pravidla.

Pokud to parsujete „nějak“ partyzánsky, lze udělat prasárny typu:
Vem hodnotu (řetězec) a zaměň:
&amp; za &
&amp;lt; za &lt;
&amp;gt; za &gt;
&amp;quot; za &quot;
&amp;apos; za &apos;
Pak z toho dostanete normální HTML řetězce no a musíte si zaměnit sekvence:
&lt; za <
&gt; za >
&quot; za "
&apos; za '
&xXX za chr(hextodec(XX))
A asi tímto divným postupem z toho vyleze normální string.
To, že trpíš stihomamem, ještě neznamená, že po tobě nejdou. ⰞⰏⰉⰓⰀⰜⰉ ⰗⰞⰅⰜⰘ ⰈⰅⰏⰉ ⰒⰑⰎⰉⰁⰕⰅ ⰏⰉ ⰒⰓⰄⰅⰎ ·:⁖⁘⁙†
16.11.2010 00:40 Ladislav Nešněra | skóre: 30 | blog: ..+2
Rozbalit Rozbalit vše Re: neznámé kódování v XML
Oběma ještě jednou díky za pomoc

Neb si potřebuji připomenout Python, řešil jsem to v něm. Po prvním kole mi XSL transformace nechala nečitelné jen ty hexadecimálně zapsané entity. Těch jsem se následně zbavil kódem inspirovaným tímto.

Ještě jsem narazil na docela zajímavý projekt, žel hexadecimální entity také neumí.

Založit nové vláknoNahoru

Tiskni Sdílej: Linkuj Jaggni to Vybrali.sme.sk Google Del.icio.us Facebook

ISSN 1214-1267, (c) 1999-2007 Stickfish s.r.o.