Ankündigung

Einklappen
Keine Ankündigung bisher.

[Erledigt] Das kroatische Alphabet bringt mich noch um....

Einklappen

Neue Werbung 2019

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

  • #16
    Jetzt ist der Inhalt der Datei utf-8 codiert.

    Kommentar


    • #17
      Wolla,

      Zitat von Wolla Beitrag anzeigen
      Nachtrag:
      Ich mache das Importieren durch Zeilenweises Lesen der CSV-Datei, Splitten der Felder am Trennzeichen (, und normalem INSERT INTO tabelle ....
      Das einzig Spezielle sind die o.a. Anweisungen SET NAMES und header.
      Hast du damit das Zeichensatz-Problem geloest oder ist es einfach nur eine andere Methode, Daten aus einer Datei in eine MySQL-Datenbank-tabelle zu schreiben? Hmmm, wie geht das?

      Wie weist du eine Zeile einem Parameter zu?
      Aufsplitten mit explode?

      danke fuer Feedback.

      Bodo

      Kommentar


      • #18
        Aus der Frage entnehme ich, dass Dein Probelm immer noch nicht gelöst ist?

        Bisher hattest Du kein utf-8 in der Datei. Kein Wunder, dass sich MySQL dabei verschluckt, wenn es utf-8 condierte Daten erwartet.

        Kommentar


        • #19
          David, leider ja, genau das wollte ich mit dem Satz am Ende meines Kommentars um 23:39 sagen: Trotz nun UTF8-codierter CSV-Datei, passiert das gleiche, MySQL verschluckt sich und schmeisst alles nach und inklusive "Sonderzeichen" weg.



          Bodo


          PS: Vielen Dank uebrigens noch fuer Deine bishrige Hilfe, das ging ja wirklich ratzfatz und sehr ueberlegt voran. Spitze!

          PPS: David, sehr witzig, was ich grad sehe: Du hast Dich hier im Forum genau an meinem 40. registriert!

          Kommentar


          • #20
            Na dann mal ein Rundumtest
            PHP-Code:
            <?php
            error_reporting
            (E_ALL);
            ini_set('display_errors'1);
            ini_set('mysql.trace_mode'1);

            $link mysql_connect("localhost""AKS_User""xxxxx") or die("Keine Verbindung möglich: " mysql_error());
            mysql_select_db("AKS_Liga_Results"$link) or die(mysql_error());
            mysql_query('SET NAMES "utf8"'$link) or die(mysql_error());
            mysql_query('SET CHARACTER SET utf8'$link) or die(mysql_error());

            $infile 'c:/www/test/liga_results_test_2.csv';
            $c file_get_contents($infile);
            $Z chr(0xC5) . chr(0xBD);
            var_dump($infilestrlen($c), strpos($c$Z));

            $sql 'CREATE TEMPORARY TABLE tmp_liga LIKE liga_results';
            mysql_query($sql$link) or die(mysql_error());
            $sql "LOAD DATA INFILE '$infile' INTO TABLE tmp_liga FIELDS TERMINATED BY ';' lines terminated by '\r\n'";
            mysql_query($sql$link) or die(mysql_error());

            $sql 'SELECT surname, charset(surname) as c, Length(surname) as l FROM tmp_liga WHERE result_id=2';
            $result mysql_query($sql$link) or die(mysql_error());
            $row mysql_fetch_array($result);
            echo 
            'surname: ' $row['surname'] . "<br />\n";
            echo 
            'strlen(surname): ' strlen($row['surname']) . "<br />\n";
            echo 
            'charset: ' $row['c'] . "<br />\n";
            echo 
            'Length: ' $row['l'] . "<br />\n";

            Kommentar


            • #21
              Wenn ich die "nicht nach UTF8 konvertierte" CSV-Datei lade, wird nach deinem Script das ausgegeben:

              ------
              string(35) "c:/www/test/liga_results_test_2.csv" int(443) bool(false) surname:
              strlen(surname): 0
              charset: utf8
              Length: 0

              Warning: Unknown: 1 result set(s) not freed. Use mysql_free_result to free result sets which were requested using mysql_query() in Unknown on line 0
              --------

              Nehme ich die stattdessen die CSV inkl Umwandlung nach UTF8

              -----------
              string(42) "c:/www/test/liga_results_test_2_utf8-2.csv" int(449) int(129)
              Warning: mysql_query() [MySQL :: MySQL Documentation]: Incorrect integer value: '1' for column 'result_id' at row 1 in C:\www\test\rundumtest.php on line 30
              Incorrect integer value: '1' for column 'result_id' at row 1
              -----------

              HMMM??? Ich weiss natuerlich nicht, ob's das ist, was du erwartest hast-

              Es gibt uebrigens noch Neuigkeiten:
              Heute morgen - nach ein paar Stunden Schlaf-Pause - hab ich nochmal etwas ausprobiert: Die nach UTF8 konvertierter CSV-Datei (Name: liga_results_test_2_utf8-2.csv) habe ich direkt ueber PHPMYADMIN importiert, Ergebnis: einwandfrei, alle character werden korrekt in der Datenbank und auch per Ausgabe per HTML-Webseite. Danke.

              Kommentar


              • #22
                Zitat von b_i_g_b_o Beitrag anzeigen
                Wenn ich die "nicht nach UTF8 konvertierte" CSV-Datei lade
                Ab da habe ich nicht mehr weiter gelesen.
                Wenn Du mysql sagst "hier kommen die utf8 codierten Daten" und dann kommt was anderes, klappt es nicht.
                "Probieren Sie unser Banana Split"
                "hm, das ist Birne Helene"
                "und was gefällt Ihnen daran nicht?"

                Kommentar


                • #23
                  Zitat von b_i_g_b_o Beitrag anzeigen
                  Incorrect integer value: '1' for column 'result_id' at row 1 in C:\www\test\rundumtest.php on line 30
                  Mein Skript hat übrigens nur 27 Zeilen, deshalb verwirrt mich die Fehlermeldung sehr.

                  Kommentar


                  • #24
                    David, vielen Dank an Dich, letzendlich haben mir die Tips sehr weitergeholfen und die Ausgabe, EIngabe, SPeicherung von speziellen Zeichen klappt nun. Frag mich bitte nichts, warum es sooo lange nicht funktioniert hat

                    Jetzt geht's jedenfalls.

                    Nach 2 Tagen "was anderes machen", hab ich nochmal von 0 angefangen und konsequent ueberall in der MySQL DB "UTF8" genutzt dann noch

                    <meta http-equiv="content-type" content="text/html; charset=UTF-8" />

                    und

                    mysql_query("SET NAMES 'utf8'");

                    verwendet.

                    Prima... die Fragen hoeren aber natuerlich nicht auf

                    Kommentar

                    Lädt...
                    X