Toon posts:

[XML/Oracle] Unicode encoding in gegenereerde XML (SQLX)

Pagina: 1
Acties:

Verwijderd

Topicstarter
De betrokken database is opgezet in UTF8, Oracle versie 9.2, de omgeving NLS_LANG staat op AL32UTF8.
Als ik achter de SQL prompt dit uitvoer:
code:
1
2
3
4
5
SQL> select XMLElement("test",'ÄBC') from dual;

XMLELEMENT("TEST",'ÄBC')
--------------------------------------------------------------------------------
<test>ÄBC</test>

Die uitvoer wordt naar een file geschreven die opgestuurd wordt naar onbekend systeem dat een afdruk maakt. Het probleem bestaat hierin, dat het systeem het Ä karakter niet verstaat en er komt uiteindelijk ?BC uit.
Als ik expliciet dit opstuur:
code:
1
<test>ÄBC</test>

Dan is de output zoals ik het hebben wil.

De uiteindelijke XML file zou er als volgt moeten uitzien:
code:
1
2
3
4
<opdracht>
<doel>printer</doel>
<data>&lt;test&gt;ÄBC&lt;/test&gt;</data>
</opdracht>

maar ziet er als volgt uit:
code:
1
2
3
4
<opdracht>
<doel>printer</doel>
<data>&lt;test&gt;ÄBC&lt;/test&gt;</data>
</opdracht>

Er staat wel al dbms_xmlgen.convert() rond, maar deze vangt enkel <,> op
Maar hoe krijg ik nu die speciale characters zoals Ä of chinese tekens ge-encodeerd in de output van mijn SQL? Ik heb al de documentatie van Oracle nagekeken maar vind hiervoor geen functie...

[ Voor 29% gewijzigd door Verwijderd op 02-02-2006 16:22 ]


Verwijderd

Topicstarter
ondertussen heb ik iets gevonden dat er op gelijkt, maar het is nog niet wat ik zoek, namelijk de Oracle functie utl_url.escape:
code:
1
2
3
4
5
SQL>  select utl_url.escape(XMLElement("test",'ÄBC').getclobval()) from dual;

UTL_URL.ESCAPE(XMLELEMENT("TEST",'ÄBC').GETCLOBVAL())
--------------------------------------------------------------------------------
%3Ctest%3E%C4BC%3C/test%3E


dit is natuurlijk encoding gebruikt in URLs, terwijl ik eentje zoek voor in XMLs

  • TeeDee
  • Registratie: Februari 2001
  • Laatst online: 12-04 21:32

TeeDee

CQB 241

Zoals ik her en der lees, is de mogelijke oplossing om de characters naar hexadecimal te converten. Hoe, waarom en wat weet ik niet ;) Zal nog ff verder neuzen.

Heart..pumps blood.Has nothing to do with emotion! Bored