de.comp.lang.php.* FAQ

18.4. Umlaute, die in die Datenbank eingetragen wurden, werden nicht korrekt dargestellt.

Antwort von Anton Bangratz

Sowohl beim Eintragen als auch beim Auslesen der Daten in Textfeldern ist darauf zu achten, dass der verwendete Client die richtigen NLS/-Parameter verwendet. Die Clients bekommen diese Information über die Umgebungsvariablen NLS_LANG und ORA_NLS33. Der richtige Wert für NLS_LANG ist der Datenbank selber zu entnehmen. Hat die Datenbank zum Beispiel als Character Set die Einstellung WE8ISO8859P9, so sollte die Variable {SPRACHE}_{LAND}.WE8ISO8859P9 lauten, wobei {SPRACHE} und {LAND} nur für die Steuerung der Meldungen, die der Client zurückgibt, zuständig sind, und vom mit dem ORACLE-Client installierten Sprachpaket abhängig sind.

Die Einstellung von ORA_NLS33 dient dazu, dem Client mitzuteilen, wo sich die Dateien befinden, die die Prompts in verschiedenen Sprachen beinhalten.

Ein Beispiel für korrekte Einstellung:

export ORACLE_HOME=/opt/oracle/OraHome1
export ORA_NLS33=$ORACLE_HOME/ocommon/nls/admin/data
export NLS_LANG GERMAN_GERMANY.WE8ISO8859P9

Nun ist es noch wichtig, dass die Variablen von PHP korrekt initialisiert werden. Dabei ist darauf zu achten, dass man beim Modul-PHP diese Variablen vor dem Start des Apache setzt - im Script apachectl ist beispielsweise ein guter Platz dafür.

Valid HTML 4.01! Valid CSS!

18.4. Umlaute, die in die Datenbank eingetragen wurden, werden nicht korrekt dargestellt.
http://www.php-faq.de/q/q-oracle-umlaute.html
Archiv der de.comp.lang.php-FAQ Dies ist eine Archivseite von 2008 und wurde seitdem nicht geändert. Das dclp-FAQ-Team