We launched new forums in March 2019—join us there. In a hurry for help with your website? Get Help Now!
    • 28436
    • 242 Posts
    Hallo Leute,

    1ch machs kurz, weil mir der utf8 Kram sowieso zu hoch hängt.

    Die aktuelle Version habe ich aufgesetzt mit der Auswahl von UTF-8 als Zeichensatz für die Datenbankverbindung.
    Nun lese ich in der Datenbank die nach UTF-8 konvertierten Zeichen deutscher Umlaute statt deren Rohversion. Witzigerweise sollte ja das genau der schöne Vorteil der Sache sein und so schon ganz prima mit der 0.9.5er funktionierte.

    Jetzt bin ich mir nicht sicher, wie ich jetzt vorgehen soll.

    Kann das überhaupt jemand nachvollziehen und hat einen Tip für mich?

    Vielen Dank.

    ciao, Stefan
      • 28436
      • 242 Posts
      Servus,

      in der config.inc.php gibt es eine neue Variable namenes "$database_connection_charset", dieser war kein Wert zugewiesen. Hier sollte man "utf8" verwenden. also $database_connection_charset=’utf8’.

      Dann klappt das auch mit dem unicode.

      ciao, Stefan

      Nachtrag:

      Wenn es zufällig jemandem wir mir ergangen ist, also das schon zig Seiten angelegt waren bevor das "Problem" erkannt wurde, hilft vielleicht dieser schnippsel weiter um die utf8-Zeichen zurück in die Rohversion der Zeichen zu wandeln. Erspart einen haufen Tipperei.
      <?php
      mysql_connect( 'HOST','USER','PASS' );
      mysql_select_db( 'DB' );
      
      $q =    'SELECT
                  `id`,
                  `pagetitle`,
                  `longtitle`,
                  `description`,
                  `introtext`,
                  `content`,
                  `menutitle`
              FROM
                  `modx_site_content`
              ';
      
      $r = mysql_query( $q );
      
      while( $e = mysql_fetch_assoc( $r ) )
      {
          $pagetitle      = utf8_decode( $e['pagetitle'] );
          $longtitle      = utf8_decode( $e['longtitle'] );
          $description    = utf8_decode( $e['description'] );
          $introtext      = utf8_decode( $e['introtext'] );
          $content        = utf8_decode( $e['content'] );
          $menutitle      = utf8_decode( $e['menutitle'] );
      
          mysql_query('
              UPDATE
                  `modx_site_content`
              SET
                  `pagetitle`     = \''.mysql_real_escape_string($pagetitle).'\',
                  `longtitle`     =\''.mysql_real_escape_string($longtitle).'\',
                  `description`   =\''.mysql_real_escape_string($description).'\',
                  `introtext`     =\''.mysql_real_escape_string($introtext).'\',
                  `content`       =\''.mysql_real_escape_string($content).'\',
                  `menutitle`     =\''.mysql_real_escape_string($menutitle).'\'
              WHERE
                  `id` = \''.$e['id'].'\'
      
          ')or die( mysql_error() );
      
      }
      ?>
        • 36451
        • 264 Posts
        Sehr nützlich. Danke für Deinen Beitrag.