Ankündigung

Einklappen
Keine Ankündigung bisher.

Umlaute aus csv Datei in HTML und Datenbank richtigt darstellen

Einklappen

Neue Werbung 2019

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

  • Umlaute aus csv Datei in HTML und Datenbank richtigt darstellen

    Hallo,
    ich weiß dass es zu diesem Thema bereits mehrere Threads gibt, dennoch bin ich an der Umsetzung gescheitert. Ich habe bisher folgendes probiert:
    - csv Datei in UTF-8 Code umwgewandelt (mit texteditor)
    - in der php Datei den UTF-8 header eingebunden (header('Content-Type: text/html; charset=UTF-8')
    -die Datenbank selbst ist im UTF-8 format gespeichert. Wenn ich direkt über eine Webseite eingebe, dann werden die Umlaute auch korrekt erfasst.
    - zusätzlich noch die Funktion utf8_decode() drüberlaufen lassen.

    Trotzdem erhalte ich immer noch die berüchtigten Fragezeichen bei Umlauten.
    Hat noch jemand einen Tipp für mich? Wäre sehr dankbar, da mich das Problem mittlerweile verzweifeln lässt.

  • #2
    was ist der Charset der DB-Verbindung? was ist die locale-Einstellung bzgl. Charset?

    Kommentar


    • #3
      Hallo, danke erst mal für deine Antwort. Das Charset in der DB ist auf utf-8 general eingestellt. Folgenden Code habe ich für das Auslesen der csv Datei geschrieben:

      PHP-Code:
      $fileName="schueler.csv";
      $csvData file_get_contents($fileName);


      $lines explode(PHP_EOL$csvData);
      for(
      $r=0;$r<count($lines);$r++)
      {

      $elemente explode(";"$lines[$r]);
      $el0=$elemente[0];
      $el1=$elemente[1];
      $el2=$elemente[2];
      echo 
      $vname." ".$nname."(".$klasse.")<br>"//hier werden bereits diese Fragezeichen ausgegeben. In der DB selbst steht dann bei den Strings, die ein Fragezeichen enthalten gar nichts mehr

      // SQL- Anweisungen


      Ich hoffe, mein Anliegen verständlich ausgedrückt zu haben.

      Kommentar


      • #4
        Hier muss systematisch vorgegangen werden.
        Erfolgt die Anzeige im Browser denn überhaupt in UTF-8, dies siehst du wenn du im FF mit der rechten Maustaste in der Seite rein klickst und dann View Page Info auswählst..
        Danach diese Seite durcharbeiten http://php-de.github.io/jumpto/utf-8/
        utf-8 general.ci ist nicht der Zeichensatz sondern lediglich die alphabetische Zeichensortierung für die Ausgabereihenfolge.

        Für die Einstellung des Zeichensatzes verwende http://php.net/manual/de/mysqli.set-charset.php

        csv Datei in UTF-8 Code umwgewandelt (mit texteditor)
        Dies ist nicht notwendig. Wenn du die Quelle kennst zum Beispiel MS-Excel dann hast du Windows-1256 als Zeichensatz vorliegen und wandelst es mit PHP um bevor du es in der Datenbank speicherst. Das erspart dir das händische Umwandeln über den Texteditor, dazu muss aber vorher sichergestellt sein wie die CSV-Datei vorliegt. Sonst tappst du ewig im dunkeln.

        Kommentar


        • #5
          Zitat von bassman Beitrag anzeigen
          - zusätzlich noch die Funktion utf8_decode() drüberlaufen lassen.
          Über was? "Zusätzlich" hört sich gewaltig falsch an. Texte auf gut glück durch utf8_encode oder utf8_decode zu jagen hilft nicht, es zerstört die Daten nur, wenn sie im falschen Zeichensatz waren.
          [QUOTE=nikosch]Macht doch alle was Ihr wollt mit Eurem Billigscheiß. Von mir aus sollen alle Eure Server abrauchen.[/QUOTE]

          Kommentar


          • #6
            Hallo,vielen Dank für eure Hilfe. Mittlerweile habe ich den Fehler gefunden. Ich hatte eigentlich alle von euch angemerkten Schritte beachtet,nur einen nicht: die in UTF-8 umgewandelte csv Datei auf den Server hochladen- das hatte ich doch glatt vergessen. also, es funktioniert, das ist die Hauptsache!!

            Grüße an alle Helfer

            Kommentar

            Lädt...
            X