Felix2: Probleme mit Datenbank und UTF8

Hallo,

ich möchte auf einem Server der T-Com ein selbst geschriebenes CMS installieren und stoße dabei auf Probleme mit der Kodierung.

Wenn ich einen Query abschicke, der Umlaute enthält, bekomme ich nicht das korrekte Ergebnis zurück, nur wenn ich den querystring vorher mit utf8_encode behandle.

Gibt es eine Möglichkeit, das nun nicht für jeden Query einzeln zu machen, sondern skriptweit eine automatische utf8-encodierung der queries einzustellen?

Es grüßt
Felix

  1. Hallo,

    Gibt es eine Möglichkeit, das nun nicht für jeden Query einzeln zu machen, sondern skriptweit eine automatische utf8-encodierung der queries einzustellen?

    Ich setze diese beiden Zeilen an den Anfang meines PHP-Codes:

    @mysql_query( "SET NAMES 'utf8'", $conn_id );  
    header('content-type: text/html; charset=utf-8');  
    
    

    Kalle

  2. hi,

    Gibt es eine Möglichkeit, das nun nicht für jeden Query einzeln zu machen, sondern skriptweit eine automatische utf8-encodierung der queries einzustellen?

    Vielleicht genügt es ja, die Zeichenkodierung einmalig am Scriptanfang festzulegen, dass hat mir zumindest bei diesme Problem geholfen.

    Das gibt es übrigens auch für PHP4, falls du diese Version nutzen solltest.

    mfg

    --
    echo '<pre>'; var_dump($Malcolm_Beck`s); echo '</pre>';
    array(2) {
      ["SELFCODE"]=>
      string(74) "ie:( fl:) br:> va:? ls:? fo:) rl:| n4:# ss:{ de:? js:} ch:? sh:( mo:? zu:("
      ["Meaningful"]=>
      string(?) "Der Sinn des Lebens ist deinem Leben einen Sinn zu geben"
    }
    1. Hallo,

      Das gibt es übrigens auch für PHP4, falls du diese Version nutzen solltest.

      mysql_set_charset() wird bei PHP 4 nicht helfen, auch nicht bei PHP 5.0 und benötigt MySQL 5.0.7 oder neuer.

      <zitat>
          mysql_set_charset
          (PHP 5 >= 5.2.3)

      mysql_set_charset — Setzt den Verbindunszeichensatz
      </zitat>

      Hat man's mit veralteten Versionen (gleich ob PHP oder MySQL) zu tun, bleibt einem die Möglichket, ein entsprechendes SET NAMES-Statement abzusetzen.

      Freundliche Grüße

      Vinzenz

      1. hi,

        Hat man's mit veralteten Versionen (gleich ob PHP oder MySQL) zu tun, bleibt einem die Möglichket, ein entsprechendes SET NAMES-Statement abzusetzen.

        Danke für die Korrektur.

        mfg

        --
        echo '<pre>'; var_dump($Malcolm_Beck`s); echo '</pre>';
        array(2) {
          ["SELFCODE"]=>
          string(74) "ie:( fl:) br:> va:? ls:? fo:) rl:| n4:# ss:{ de:? js:} ch:? sh:( mo:? zu:("
          ["Meaningful"]=>
          string(?) "Der Sinn des Lebens ist deinem Leben einen Sinn zu geben"
        }