• Willkommen im Linux Club - dem deutschsprachigen Supportforum für GNU/Linux. Registriere dich kostenlos, um alle Inhalte zu sehen und Fragen zu stellen.

Per ODBC von der AS/400 lesen macht Umlaute kaputt

Host

Newbie
Liest jemand erfolgreich Daten von der AS/400?

Bei mir zerlegen sich Strings, die Umlaute enthalten, komplett.
PHP ist dann sogar verwirrt über die Stringlänge...

Ich habe versucht aus den "ODBC language considerations" von IBM schlau zu werden, aber ich konnte nur lesen, was man alles einstellen KANN, nicht aber, was ich einstellen SOLLTE.
 

whois

Ultimate Guru
Hi Horst

Kennst du das?

http://iibm01.inf.uni-jena.de/db2/db2a0/frame3.htm
http://www.inf.uni-konstanz.de/dbis/teaching/ws0203/information-systems/sql-reference/frame3.htm

cu
 
OP
H

Host

Newbie
Nein, leider stand in beiden nichts konkretes drin.
Auch wenn die Links sonst sehr interessant waren.

Keiner ausser mir überträgt Daten von der AS/400?
 

whois

Ultimate Guru
Hi Host

Leider wirft Google fast schon zuviel darüber aus.
http://katr.vtu.lt/db2eee/de/db2iy/frame3.htm#db2iy171
http://katr.vtu.lt/db2eee/de/db2iy/frm3toc.htm

cu
 

G aus W

Hacker
Hallo Host,

auf welchem Weg ziehst Du Deine Daten von der AS/400?

Ich übertrage beispielsweise Daten in Form von Abfragen (Queries) unter Verwendung des ODBC-Treibers von der AS/400 nach OObase oder OOcalc.

Die Umlaute fehlten bei mir anfangs auch, bis ich das gesuchte Feld unter "Bearbeiten" -> "Datenbank" -> "Eigenschaften" -> "Zusätzliche Einstellungen" entdeckt habe: Es nennt sich "Dateikonvertierung / Zeichensatz", und dort mußte ich auf "Unicode [UTF-8]" umstellen. Seither sind meine ähs, öhs und ühs wieder richtig.

Wenn Du eine andere Form der Abfrage ohne OpenOffice wählst, kann ich wahrscheinlich nicht viel helfen. Generell würde ich aber auch dann davon ausgehen, die Daten kommen korrekt rüber, und es ist Sache des Programms auf der Client-Seite, die Konvertierung richtig vorzunehmen.

Ich hoffe, der Tip hilft!

Gruß Greg

Edit: Schön, wenn manche Dinge ungewollt zu Smilies werden... 8)
 
OP
H

Host

Newbie
Hmm, ich lese in PHP (über ODBC) aus eine Datei der AS/400 und schreibe das Ergebnis dann (ebenfalls über ODBC) in die lokale MySQL.

Es zerlegt mir beim Lesen den Inhalt der PHP-Variablen bzw. füllt diese nicht richtig.


Codefragment:
==================
// Lesen von AS/400
$result=odbc_exec($source,"Select * from ECOLIB.ECP330");

// Feld entnehmen
$Bezeichnung=odbc_result($result,2);
===================

$Bezeichnung enthält Unsinn ab der Stelle im String wo sich vorher ein Umlaut befand.

Ist das, äquivalent zu deiner Einstellung, eine fehlende Einstellung für PHP?
 

G aus W

Hacker
Hallo Host,

leider kenne ich mich mit PHP nicht aus, aber was passiert denn, wenn Du - laienhaft gesprochen - die PHP-Variable so vordefinierst, daß sie "weiß", daß sie UTF-8-kodierten Text zu erwarten hat?

Sollte das keine praktikable Lösung sein, würde ich Dir empfehlen, evtl. mal in einem der IBM-Linux-Foren nachzufragen.

Gruß Greg
 
Oben