latin1_swedish_ci to utf8_unicode_ci

Einklappen
X
 
  • Filter
  • Zeit
  • Anzeigen
Alles löschen
neue Beiträge

  • latin1_swedish_ci to utf8_unicode_ci

    Hi,

    ich hab ne Datenbank mit der collation "latin1_swedish_ci". Diese will ich jetzt in eine DB mit der collation "utf8_unicode_ci" importieren.

    Mein Ansatz:

    ich lese alle Datensätze der alten DB aus und konvertiere sie mit dieser Funktion:
    PHP-Code:
    function fixEncoding($in_str) {
        
    $cur_encoding mb_detect_encoding($in_str) ;
        if(
    $cur_encoding == "UTF-8" && mb_check_encoding($in_str,"UTF-8"))
        {
            return 
    $in_str;          
        }
        else
        {
            return 
    utf8_encode($in_str);          
        }

    Nur konvertiert werden die Datensätze nicht wirklich.

    Umlaute sehen immer noch schrecklich aus. (ää)

    Meine Vermutung ist, dass ich zuerst sicherstellen muss, dass der Datensatz auch wirklich im latin1_swedish_ci format ist.

    Aber wie konvertiere ich einen String per PHP ins "latin1_swedish_ci" Format?
    Lurchi ! Lurchi ! Lurchi !

  • #2
    Wieso machst du nicht einfach einen Dump und importierst die Daten in die neue Datenbank? Wozu der Umweg über PHP?

    Kommentar


    • #3
      Wie gesagt, da die daten im anderen format gespeichert sind, und bei einem dump keine konvertierung vorgenommen wird. umlaute = murx
      Lurchi ! Lurchi ! Lurchi !

      Kommentar


      • #4
        Zitat von Anbu Beitrag anzeigen
        Wie gesagt, da die daten im anderen format gespeichert sind, und bei einem dump keine konvertierung vorgenommen wird. umlaute = murx
        Du kannst beim Importieren angeben, welchen Zeichensatz die Datei hat. MySQL konvertiert das dann automatisch.

        Kommentar


        • #5
          Hallo,

          stell einfach den Verbindungszeichensatz auf Latin und schieb sie unverändert rein (mit PHP), dann konvertiert die DB es selbst in den richtigen Zielzeichensatz.

          Siehe SET NAMES ... oder besser mysql_set_charset

          Edit: Trotzdem wäre PHP ein Umweg und der einfachste Weg der den h3ll beschrieben hat.

          Gruß,

          Amica
          Zuletzt geändert von AmicaNoctis; 29.04.2010, 12:59.
          [COLOR="DarkSlateGray"]Hast du die [COLOR="DarkSlateGray"]Grundlagen zur Fehlersuche[/color] gelesen? Hast du Code-Tags benutzt?
          Hast du als URL oder Domain-Beispiele example.com, example.net oder example.org benutzt?
          Super, danke!
          [/COLOR]

          Kommentar


          • #6
            wenn ich die Daten einfach so unverändert und die db haue, dann verhauts die umlaute ja auch...


            Info: DB Struktur sieht in der ziel DB anders aus
            Lurchi ! Lurchi ! Lurchi !

            Kommentar


            • #7
              Zitat von Anbu Beitrag anzeigen
              wenn ich die Daten einfach so unverändert und die db haue, dann verhauts die umlaute ja auch...
              Wer sagt das außer dir? Ich kann sogar über die DOS-Konsole DOS-Umlaute in eine UTF-8-DB schreiben, wenn ich vorher
              Code:
              SET NAMES cp852;
              ausführe.

              Zitat von Anbu Beitrag anzeigen
              DB Struktur sieht in der ziel DB anders aus
              Das mag ja sein, aber das bekommt man mit geeigneten Abfragen und ggf. Joins und INSERT ... ON DUPLICATE KEY UPDATE alles in den Griff. Aber du kannst es auch mit PHP machen, ist ja dir überlassen.
              Zuletzt geändert von AmicaNoctis; 29.04.2010, 13:17.
              [COLOR="DarkSlateGray"]Hast du die [COLOR="DarkSlateGray"]Grundlagen zur Fehlersuche[/color] gelesen? Hast du Code-Tags benutzt?
              Hast du als URL oder Domain-Beispiele example.com, example.net oder example.org benutzt?
              Super, danke!
              [/COLOR]

              Kommentar


              • #8
                ich probiers nochmal

                scheint zu klappen
                Zuletzt geändert von AmicaNoctis; 29.04.2010, 15:47. Grund: Doppelposting
                Lurchi ! Lurchi ! Lurchi !

                Kommentar


                • #9
                  Probieren geht über diskutieren
                  [COLOR="DarkSlateGray"]Hast du die [COLOR="DarkSlateGray"]Grundlagen zur Fehlersuche[/color] gelesen? Hast du Code-Tags benutzt?
                  Hast du als URL oder Domain-Beispiele example.com, example.net oder example.org benutzt?
                  Super, danke!
                  [/COLOR]

                  Kommentar

                  Lädt...
                  X