2Danke
ERLEDIGT
JA
JA
ANTWORTEN
4
4
ZUGRIFFE
280
280
EMPFEHLEN
-
Hi,
Ich habe eine Oracle 10g Datenbank die auf Unicode läuft, eine PHP Anwendung die via ADODB auf diese DB Zugreift. Der darunter liegende Linux Server spricht auch unicode. Auf der Webseite kommen aber nur Fragezeichen an. Bin zwischenzeitlich ratlos. Folgendes habe ich schon versucht:
Verbindung zur DB explizit auf Unicode eingestellt:
Ausgabe direkt aus dem Code funktioniert:PHP-Code:define("ADODB_CHARSET", "AL32UTF8");
$conn = &ADONewConnection('oci8');
$conn->Connect(ADODB_HOSTADDRESS, ADODB_USER, ADODB_PWD, ADODB_SERVICENAME);
$conn->charSet = ADODB_CHARSET;
$conn->SetFetchMode(ADODB_FETCH_ASSOC);
Insert und anschließendes Select führt (auch bei Umlauten) zu Fragezeichen:PHP-Code:print("TEST - 河南");
Direkte Eingabe von Unicode Zeichen über den Oracle SQL Developer führt dazu, dass die Zeichen in der DB richtig angezeigt werden bei der Ausgabe auf der Webseite aber wieder als Fragezeichen dargestellt werden.PHP-Code:$value = array();
$value['STRING'] = "河南";
$recordSet = $GLOBALS['adodb']->AutoExecute(DB_SCHEMA.".UNICODE_TEST", $value, "INSERT");
$value = array();
$value['STRING'] = "äöüüüß";
$recordSet = $GLOBALS['adodb']->AutoExecute(DB_SCHEMA.".UNICODE_TEST", $value, "INSERT");
$query = "SELECT * FROM ".DB_SCHEMA.".UNICODE_TEST";
$recordSet = $GLOBALS['adodb']->Execute($query);
while($res = $recordSet->FetchNextObject()) {
echo "<li>".$res->STRING."</li>";
}
Hat jemand eine Idee was ich noch machen kann um das Problem einzugrenzen bzw. zu lösen?Johannes Schmidt
:: http://www.schmidtjohannes.de
:: http://www.SECURITY-BLOG.EU
:: http://www.MCSEboard.de
:: http://www.ServerHowTo.de
-
11.01.12 15:31 #2
- Registriert seit
- May 2006
- Ort
- There is no place like 127.0.0.1
- Beiträge
- 3.521
Hast du auch die korrekten HTTP-Header gesendet, um dem Browser mitzuteilen, dass es sich um UTF-8-Output handelt:
Code php:1
header('Content-Type: text/html; charset=utf-8');
Bitte darauf achten, das Header nur gesendet werden können, wenn noch kein anderer Output an den Browser gesendet wurde.Grüße
--
Qualität des Codes wird in WTF's/Min gemessen: Je mehr, desto schlechter der Code ;-)
-
Jup, dass ist gesetzt und wird vor allem gesendet.
Der HTML Header wird natürlich auch gesetzt:PHP-Code:header("Content-Type: text/html;charset=".DEFAULT_CHARSET."");
PHP-Code:<meta http-equiv="Content-Type" content="text/html; charset=utf-8"/>
Geändert von südpol (11.01.12 um 15:47 Uhr)
Johannes Schmidt
:: http://www.schmidtjohannes.de
:: http://www.SECURITY-BLOG.EU
:: http://www.MCSEboard.de
:: http://www.ServerHowTo.de
-
11.01.12 15:55 #4
- Registriert seit
- May 2006
- Ort
- There is no place like 127.0.0.1
- Beiträge
- 3.521
Ich hab da mal in Manual gesehen, bei ADODB, die setzen den Charset bevor sie den Connect ausführen. Das machst du offensichtlich anders herum. Ich würde die Abfolgen mal austauschen.
Grüße
--
Qualität des Codes wird in WTF's/Min gemessen: Je mehr, desto schlechter der Code ;-)
-
Danke, du bist der Beste!! Ich brauche mehr von diesen "Danke" Buttons. Das war die Lösung!
Johannes Schmidt
:: http://www.schmidtjohannes.de
:: http://www.SECURITY-BLOG.EU
:: http://www.MCSEboard.de
:: http://www.ServerHowTo.de
Ähnliche Themen
-
ADOdb erweitern?
Von Pallaadino im Forum PHPAntworten: 10Letzter Beitrag: 27.10.10, 23:57 -
Oracle: Unicode code point eines Zeichens
Von sceppi im Forum Relationale DatenbanksystemeAntworten: 2Letzter Beitrag: 27.06.08, 08:44 -
ADOdb
Von DannyP im Forum PHPAntworten: 1Letzter Beitrag: 09.09.07, 17:52 -
ADODB mysql - oracle inserts
Von südpol im Forum Relationale DatenbanksystemeAntworten: 3Letzter Beitrag: 28.12.06, 23:41 -
Unicode oder Unicode nicht
Von Trivalik im Forum .NET ArchivAntworten: 1Letzter Beitrag: 09.12.04, 15:02





Zitieren

Login






[PHP][Snippet] Array zu XML konvertieren