iconv UTF-8 ISO-8859-7 ISO-8859-1

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

  • iconv UTF-8 ISO-8859-7 ISO-8859-1

    Hallo,
    mein provider hat umgestellt und ich muss nun utf-8 in die Datenbank kriegen.

    Hab ne routine geschrieben:
    PHP-Code:
    $arr $oCore->mysql->select("tbl_client");
    for (
    $i 0$i count($arr); $i++) {
        foreach (
    $arr[$i] as $key => $val) {
            if (
    preg_match("/_gr/"$key))
                
    $arr[$i][$key] = iconv("ISO-8859-7""UTF-8"$arr[$i][$key]);
            elseif (
    preg_match("/_de/"$key))
                
    $arr[$i][$key] = iconv("ISO-8859-1""UTF-8"$arr[$i][$key]);
        }
        
    $oCore->mysql->insert("tbl_client_utf8"$arr[$i]);

    aber die tuts nicht ...

    print_r erzeugt optimale ausgabe
    in der Datenbank ist dann wieder nur Müll

    also sowas:
    'Feinste klassische griechisch-kretanische Küche m...'

    und im griechischen schauts noch schlimmer aus!!
    '?????_???????³ ???°?????©??'

    Wer weiss Rat?
    Risc is part of the game if you want to sit in the captain´s chair.

  • #2
    es geht nicht nur um datenbank, sondern auch um charset von der Seite, die dein script ausgibt.
    ich habe extra im Anhang, die Kopie von dieser Seite gemacht, nur mit dem kleinem unterschied "charset=utf-8"
    schau mal wie die "Müll" und wie die "Küche" aussieht!!!
    (aber als html abspeichern)
    Angehängte Dateien
    Slava
    bituniverse.com

    Kommentar


    • #3
      @slava
      das meta-charset benutzt der browser nur, wenn er keinen charset header vom server erhält.

      bei mir klappt die darstellung daher auch ohne der meta-änderung.... ich kann zwar kein griechisch, sollte aber dennoch passen. screener anbei.


      EDIT:
      den sklaven entfernt.
      Angehängte Dateien
      Zuletzt geändert von Abraxax; 14.07.2006, 21:06.
      INFO: Erst suchen, dann posten![color=red] | [/color]MANUAL(s): PHP | MySQL | HTML/JS/CSS[color=red] | [/color]NICE: GNOME Do | TESTS: Gästebuch[color=red] | [/color]IM: Jabber.org |


      Kommentar


      • #4
        Original geschrieben von Abraxax
        @slave
        das meta-charset benutzt der browser nur, wenn er keinen charset header vom server erhält.
        so wie ich es verstehe pfeift der browser auf den header, wenn in meta ein charset eingestelt ist.
        in jedem fall wollte ich im zeigen, dass "Kü" genau als "ü" bei richtigem utf-8 header oder meta dargestellt wird
        Slava
        bituniverse.com

        Kommentar


        • #5
          Die deutschen Umlaute scheinen nun zu gehen
          PHP-Code:
          elseif (preg_match("/_de/"$key))
                      
          $arr[$i][$key] = utf8_decode (iconv("ISO-8859-1""UTF-8"$arr[$i][$key])); 
          aber griechisch ist immer noch Panne

          Mit
          PHP-Code:
          echo iconv("ISO-8859-1""UTF-8"$arr[$i][$key]) 
          kommt: 'Kρέτα μπαρ'

          Mit
          PHP-Code:
          $arr[$i][$key] = iconv("ISO-8859-1""UTF-8"$arr[$i][$key]) 
          steht dann: K??_???± ?????±?

          Und utf8_decode bringt auch nichts ...


          Wo such ich, wer weiss was, HILFE!!
          Risc is part of the game if you want to sit in the captain´s chair.

          Kommentar


          • #6
            Original geschrieben von Slava
            so wie ich es verstehe pfeift der browser auf den header, wenn in meta ein charset eingestelt ist.
            anders rum ist es korrekt.
            INFO: Erst suchen, dann posten![color=red] | [/color]MANUAL(s): PHP | MySQL | HTML/JS/CSS[color=red] | [/color]NICE: GNOME Do | TESTS: Gästebuch[color=red] | [/color]IM: Jabber.org |


            Kommentar


            • #7
              huch seid Ihr schnell!!

              @Abraxax - nene das is schon noch die alte version
              Aber ich krieg keine neuen Daten mehr drauf!!!

              und ausserdem is es sowieso ratsam utf8 in der db zu haben

              Vielleicht ne Idee zu utf8 griechisch???

              die Datenbank ist:
              collation_connection=latin1_swedish_ci
              die betroffenen Spalten:
              collation=greek_bin

              Und damit kann ich auch händisch eintragen und im phpMyadmin
              lesen.
              Aber eben nur bei neuen Tabellen, weil mit MySql 4.1 nur nioch die utf-8
              Unterstützung zugelassen wird.

              Trotsdem danke!
              Risc is part of the game if you want to sit in the captain´s chair.

              Kommentar


              • #8
                @ Abraxax
                Hi - is der Screenshot ein Mac ?
                wiso isn da die Schrift in dem Laufbalken so gross?

                Um wieviele Px muss ich in der css runter ?

                Dank Dir - Orestis
                Risc is part of the game if you want to sit in the captain´s chair.

                Kommentar


                • #9
                  @Abraxax
                  du hast recht!
                  also bei richtigem header pfeift er auf meta

                  PHP-Code:
                  <?php 
                  header
                  ("Content-type: text/html; charset=UTF-8");
                  ?>
                  <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
                  <html>
                  <head>
                  <meta http-equiv="content-type" content="text/html; charset=ISO-8859-1">
                  <meta http-equiv="MSThemeCompatible" content="Yes">
                  </head>
                  <body>
                  <h1>Kü</h1> 
                  </body>
                  so gibt er Kü aus, obwohl in meta ISO-8859-1 steht.
                  wenn ich header auskommentiere, dann bekomme ich Kü in ausgabe.

                  "ein Kölsch geht von mir"
                  wenn du natürlich versprichst mich nicht mehr Slave zu nennen
                  Slava
                  bituniverse.com

                  Kommentar


                  • #10
                    Original geschrieben von Orestes
                    @Abraxax - nene das is schon noch die alte version
                    Aber ich krieg keine neuen Daten mehr drauf!!!
                    und ausserdem is es sowieso ratsam utf8 in der db zu haben
                    Vielleicht ne Idee zu utf8 griechisch???
                    ich würde dir empfehlen grundsätzlich alles als UTF8 abzuspeichern. wenn du noch eine DB hast, die das nicht kann, musst du es später nur konvertieren. ist halt dann ein einmaliger aufwand.

                    aber wenn ich das richtig sehe, kann deine DB das schon?

                    Original geschrieben von Orestes
                    @ Abraxax
                    Hi - is der Screenshot ein Mac ?
                    nein. das ist debian linux unter gnome. epiphany ist der browser.
                    Original geschrieben von Orestes
                    wiso isn da die Schrift in dem Laufbalken so gross?
                    Um wieviele Px muss ich in der css runter ?
                    das musst du besser wissen. nur als tipp. niemals feste größen verwenden.


                    Original geschrieben von Slava
                    "ein Kölsch geht von mir"
                    wenn du natürlich versprichst mich nicht mehr Slave zu nennen
                    habe ich jemals slave geschrieben? (s.o.)




                    @Orestes
                    wenn du magst, kann ich dir einen zugriff auf mein cms gewähren. ist zwar noch nicht fertig, aber du kannst hier GR testen. schicke mir dazu eine mail (button unter dem post) unter angabe deinen vor- und zunamens sowie deiner email, wenn es eine andere sein soll, als die hier im forum.
                    INFO: Erst suchen, dann posten![color=red] | [/color]MANUAL(s): PHP | MySQL | HTML/JS/CSS[color=red] | [/color]NICE: GNOME Do | TESTS: Gästebuch[color=red] | [/color]IM: Jabber.org |


                    Kommentar


                    • #11
                      @abraxas

                      ich würde dir empfehlen grundsätzlich alles als UTF8 abzuspeichern.
                      wenn du noch eine DB hast, die das nicht kann, musst du es später nur konvertieren. ist halt dann ein einmaliger aufwand.
                      Genau das ist ja mein Problem!!!

                      Wie konvertiere ich in MYSQL 4.0 daten (!utf8 sondern ISO-8859-7)
                      zu MYSQL 4.1-daten (also utf8) ????

                      und nur konvertieren is nun mal nicht.

                      Vormals: KEINE COLLATION ->
                      In der DB steht z.b. 'KñÝôá ìðáñ'
                      Und das ist auch gut so ... Daraus wird mit ISO-8859-7 'Kρέτα μπαρ'

                      So - der Provider hat nun MYSQL 4.1 aufgesetzt.
                      d.H. KEIN ISO-8859-7 sondern nur el-utf-8 im phpMyAdmin!
                      Mit el-utf-8 steht immer noch 'KñÝôá ìðáñ'
                      Und in dem Moment wo ich die collation auf greek_bin umstelle,
                      weil ich will ja griechisch lesen und schreiben können,
                      kracht die Spalte!

                      das mit dem Test nächte Woche - muss erst mal das Ding hier am laufen halten - un heute abend auf ne griechische Hochzeit - weisst Du was das heisst!!!!
                      Risc is part of the game if you want to sit in the captain´s chair.

                      Kommentar


                      • #12
                        kannst du dir daten nciht aus der alten DB mit deinem bisherigen zeichensatz auslesen , in utf8 konvertieren und dann in die neue DB importieren? das sollte doch machbar sein.
                        INFO: Erst suchen, dann posten![color=red] | [/color]MANUAL(s): PHP | MySQL | HTML/JS/CSS[color=red] | [/color]NICE: GNOME Do | TESTS: Gästebuch[color=red] | [/color]IM: Jabber.org |


                        Kommentar


                        • #13
                          @Abraxax

                          Ich fürchte genau das ist das Prob.

                          Auslesen - geht gut
                          Display im Browser - geht gut
                          Konvertieren und DISPLAY IM BROWSER - geht gut
                          Konvertieren und zurück in die Datenbank
                          (Neue Tabelle mit collation=greek_bin!!) - MÜLL

                          und 'collation=greek_bin' muss ich haben,
                          wiel NUR greek_bin Griechische Sprache im PHPMyAdmin unterstützt.

                          So was haben die MySql'er un phpMyAdmin'er da gedacht??

                          Ist nicht machbar! - ich find es einfach nicht!
                          Risc is part of the game if you want to sit in the captain´s chair.

                          Kommentar


                          • #14
                            Original geschrieben von Orestes
                            und 'collation=greek_bin' muss ich haben,
                            wiel NUR greek_bin Griechische Sprache im PHPMyAdmin unterstützt.
                            Wie kommst du denn zu der Aussage?
                            I don't believe in rebirth. Actually, I never did in my whole lives.

                            Kommentar


                            • #15
                              @wahsaga

                              weil ichs ausprobiert habe!!!

                              aus
                              INSERT INTO 'tbl_xxxx' ('feld_name') VALUES ('καλιμεέρα');
                              wird dann: ???????????

                              Probiers Doch selber mal aus!!!
                              Risc is part of the game if you want to sit in the captain´s chair.

                              Kommentar

                              Lädt...
                              X