latin1_swedish_ci to utf8_unicode_ci

Collapse
X
 
  • Filter
  • Time
  • Show
Clear All
new posts

  • 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?

    Comment


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

      Comment


      • #4
        Originally posted by Anbu View Post
        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.

        Comment


        • #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
          Last edited by AmicaNoctis; 29-04-2010, 11: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]

          Comment


          • #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 !

            Comment


            • #7
              Originally posted by Anbu View Post
              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.

              Originally posted by Anbu View Post
              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.
              Last edited by AmicaNoctis; 29-04-2010, 12: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]

              Comment


              • #8
                ich probiers nochmal

                scheint zu klappen
                Last edited by AmicaNoctis; 29-04-2010, 14:47. Reason: Doppelposting
                Lurchi ! Lurchi ! Lurchi !

                Comment


                • #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]

                  Comment

                  Working...
                  X