# getBytes() - russland/bulgarien  -- andere Codecs Probleme



## thE_29 (8. Sep 2005)

Also, ich habe eine Tabelle in der lauter Werte in einer Zeile (255 Zeichen lang) als byte drinnen steht!


Das ganze habe ich via getBytes() ausgelesen!


Unter österr. Filialen, bzw Filialen in denen die Oracle Datenbank nicht mit einem veränderten Codec aufgesetzt wurde, klappt das ganze auch!


Wenn ich dies aber auf einer russischen Filiale ausführt (komplette Datenbank wurde anders aufgesetzt - da man kyrilische Zeichen einfach so abspeichern kann), so kommen lauter komische Werte heraus!


Exportiere ich diese Tabelle mit einem C Tool und füg sie bei mir ein, geht es!

Ein anderes Tool (ebenfalls C) kann die byte Werte richtig auslesen, ich nicht!!


Die String usw gehen mit den getString Methoden auch richtig auslesen, nur bei den bytes hat es anscheinend was!


Habe auch schon per getAscii/BinaryStream() probiert, aber leider auch kein erfolg!


Weiß hier jemand einen Rat, bzw. geht das irgendwie, das ich an meine richtige Daten herankomm??


----------



## Bleiglanz (8. Sep 2005)

na welchen datentyp hat denn die spalte?


----------



## thE_29 (8. Sep 2005)

Mh, isch gucke!


Ädit: laut user_tab_columns VARCHAR2


----------



## Bleiglanz (8. Sep 2005)

na dann?

nimm lieber getString, sonst läufst du ja volle kanne in das Encoding theater rein?


----------



## thE_29 (9. Sep 2005)

uiui... schon wieder das Theater...

Du meinst wenn ich getString nehme und dann getBytes sollte das gehn??

Ich teste mal :/


----------



## Bleiglanz (9. Sep 2005)

wenn du bei getBytes IMMER das gleiche Encoding nimmst vielleicht

aber was soll das?

entweder du willst bytes - dann nimm einen BLOB

oder du willst text - dann nimm VARCHAR2 oder CLOB

aber reine Bytes in einer Textspalte - > das ist übel, hast du ja schon gemerkt


----------



## thE_29 (12. Sep 2005)

Tjo, leider ist das DB Konzept schon ziemlich alt und ich kann das nicht mehr ändern..

Wie die das damals erstellt haben, hat wahrscheinlich keiner dran gedacht, dass das jemals nach Russland oder so kommt... :/


----------



## Bleiglanz (12. Sep 2005)

also wollt ihr eine Byte-Folge in der DB in eine (VAR)CHAR Spalte ablegen?

es wäre vielleicht möglich, dürfte aber selbst dann schwierig sein, wenn das Client-Programm immer das gleiche Encoding verwendet, weil die meisten DBs auch noch eine Einstellung diesbezüglich zulassen (und dann uU Sonderzeichenprobleme auftreten)

funktionieren kann eigentlich nur base64 oder sowas, könnt ihr vielleicht darauf umstellen?


----------



## thE_29 (12. Sep 2005)

Mh, habs jetzt geschaft 


Ich lese es mit einem String aus und mit dem ByteBuffer und Charset habe ich es aufh US-ASCII encodiert und dann haben die Daten auch schon gepasst 

Aber danke für die Mühe, hast ein paar Denkanstöße hervorgeleited!


----------

