tutorials.de Buch-Aktion 05/2012
Like Tree2Danke
  • 1 Beitrag von saftmeister
  • 1 Beitrag von saftmeister
ERLEDIGT
JA
ANTWORTEN
4
ZUGRIFFE
280
EMPFEHLEN
  • An Twitter übertragen
  • An Facebook übertragen
AUF DIESES THEMA
ANTWORTEN
  1. #1
    südpol südpol ist offline Mitglied Brokat
    Registriert seit
    Apr 2003
    Ort
    London (UK)
    Beiträge
    253
    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:
    PHP-Code:
    define("ADODB_CHARSET""AL32UTF8");
        
    $conn = &ADONewConnection('oci8');
        
    $conn->Connect(ADODB_HOSTADDRESSADODB_USERADODB_PWDADODB_SERVICENAME);
        
    $conn->charSet ADODB_CHARSET;
        
    $conn->SetFetchMode(ADODB_FETCH_ASSOC); 
    Ausgabe direkt aus dem Code funktioniert:
    PHP-Code:
    print("TEST - 河南"); 
    Insert und anschließendes Select führt (auch bei Umlauten) zu Fragezeichen:
    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>";

    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.

    Hat jemand eine Idee was ich noch machen kann um das Problem einzugrenzen bzw. zu lösen?
     

  2. #2
    Avatar von saftmeister
    saftmeister saftmeister ist offline Der Saft sei mit dir
    tutorials.de Premium-User
    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.
    südpol bedankt sich. 
    Grüße
    --
    Qualität des Codes wird in WTF's/Min gemessen: Je mehr, desto schlechter der Code ;-)

  3. #3
    südpol südpol ist offline Mitglied Brokat
    Registriert seit
    Apr 2003
    Ort
    London (UK)
    Beiträge
    253
    Jup, dass ist gesetzt und wird vor allem gesendet.

    PHP-Code:
    header("Content-Type: text/html;charset=".DEFAULT_CHARSET.""); 
    Der HTML Header wird natürlich auch gesetzt:
    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)
     

  4. #4
    Avatar von saftmeister
    saftmeister saftmeister ist offline Der Saft sei mit dir
    tutorials.de Premium-User
    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.
    südpol bedankt sich. 
    Grüße
    --
    Qualität des Codes wird in WTF's/Min gemessen: Je mehr, desto schlechter der Code ;-)

  5. #5
    südpol südpol ist offline Mitglied Brokat
    Registriert seit
    Apr 2003
    Ort
    London (UK)
    Beiträge
    253
    Danke, du bist der Beste!! Ich brauche mehr von diesen "Danke" Buttons. Das war die Lösung!
     

Ähnliche Themen

  1. ADOdb erweitern?
    Von Pallaadino im Forum PHP
    Antworten: 10
    Letzter Beitrag: 27.10.10, 23:57
  2. Oracle: Unicode code point eines Zeichens
    Von sceppi im Forum Relationale Datenbanksysteme
    Antworten: 2
    Letzter Beitrag: 27.06.08, 08:44
  3. ADOdb
    Von DannyP im Forum PHP
    Antworten: 1
    Letzter Beitrag: 09.09.07, 17:52
  4. ADODB mysql - oracle inserts
    Von südpol im Forum Relationale Datenbanksysteme
    Antworten: 3
    Letzter Beitrag: 28.12.06, 23:41
  5. Unicode oder Unicode nicht
    Von Trivalik im Forum .NET Archiv
    Antworten: 1
    Letzter Beitrag: 09.12.04, 15:02

Stichworte