ISO-8859-1 nach UTF-8 und die Sonderzeichen

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

  • ISO-8859-1 nach UTF-8 und die Sonderzeichen

    Ich versuche verzweifelt Daten nach Google Base zu exportieren, aber bei den Sonderzeichen kommen immer Fehler.
    Dabei benutze ich die Funktion

    PHP-Code:
    iconv("ISO-8859-1""UTF-8",  $daten); 
    Aber der Fehler für ein ü sieht dann so aus.

    für

    Warum geht das mit iconv() nicht? Laut Beschreibung wandelt diese Funktion ja den Zeichensatz um.
    Gibt es da eine saubere Lösung ohne jedes Sonderzeichen zu parsen?
    Gut geraten ist halb gewußt.

  • #2
    Zitat von martinm79 Beitrag anzeigen
    Aber der Fehler für ein ü sieht dann so aus.

    für
    Das ist kein "Fehler für ein ü" - sondern die Bytesequenz, die in UTF-8 ein ü darstellt, als ANSI/ASCII interpretiert.
    I don't believe in rebirth. Actually, I never did in my whole lives.

    Kommentar


    • #3
      Die Wandlung von ISO-8859-1 nach UTF-8 ist verlustfrei.
      Andersrum nicht unbedingt.
      Wir werden alle sterben

      Kommentar


      • #4
        Und welche Funktion muß ich da jetzt einsetzten damit keine Fehler mehr kommen?
        Gut geraten ist halb gewußt.

        Kommentar


        • #5
          Du musst auch die HTML Präsentation auf UTF-8 umstellen:
          1. passenden Content-type Header senden
          2. das richtige Meta Tag setzen
          Wir werden alle sterben

          Kommentar


          • #6
            Wenn ich ein UTF-8 Header setzte, geht es bei mir local.
            Aber ich lade eine Datei bei Google Base hoch und da kann ich ja kein Header setzten.



            Oder muß ich alle Sonderzeichen wie z.b. das "ü" in
            PHP-Code:
            ü 
            umwandeln?
            Gut geraten ist halb gewußt.

            Kommentar


            • #7
              Wie überträgst du die Daten an Google?

              Kommentar


              • #8
                Noch nicht per FTP.

                Ich lade erstmal nur die Daten als Datei hoch. Und dabei zeigt er mir den "Fehler" an.
                Gut geraten ist halb gewußt.

                Kommentar


                • #9
                  Und in welchem Format? Ich habe Google Base noch nicht genutzt, aber so wie ich das sehe sind diese Formate möglich:
                  • Durch Tabulatorzeichen getrennte Datei
                  • XML-Datei im RSS 2.0-Format
                  • XML-Datei im RSS 1.0-Format
                  • XML-Dateien im ATOM-Format

                  Bei letzteren dreien wirst du auf jeden Fall auch den korrekten Zeichensatz angeben müssen. Hast du nicht mal eine Beispieldatei?

                  Kommentar


                  • #10
                    PHP-Code:
                    <?xml version="1.0"?>
                    <rss version="2.0" xmlns:g="http://base.google.com/ns/1.0">
                    <channel>
                        <item>

                        </item>
                    </channel>
                    </rss>
                    Soweit ist alles Simple, bis auf die Sonderzeichen. Ich habe jetzt erstmal strtr() benutzt um das ü etc umzuwandeln.

                    Ich finde die Lösung aber unsauber. Aber auf die schnelle die einzige Lösung.
                    Ansonsten kann ich dir Base nur empfehlen, wenn du es noch nicht nutzt.
                    Gut geraten ist halb gewußt.

                    Kommentar


                    • #11
                      Zitat von martinm79 Beitrag anzeigen
                      Soweit ist alles Simple
                      Ja, zu simple - warum gibst du denn nicht die verwendete Zeichenkodierung so an, wie XML es vorsieht?

                      http://de.selfhtml.org/xml/regeln/xm...#zusatzangaben
                      I don't believe in rebirth. Actually, I never did in my whole lives.

                      Kommentar


                      • #12
                        UTF-8 ist der Standardwert, wenn keine Angabe gemacht wird. Du machst noch irgendwo anders einen Fehler beim Erstellen der XML-Datei. Wie erstellst du diese? DOM? Per Hand?

                        Kommentar


                        • #13
                          Hallo,

                          wo kommt das ü denn überhaupt her? Aus einer Datenbank? Aus einer externen Datei? Steht es direkt im XML-erzeugenden Skript? In jedem Fall ist zu prüfen, wie die entsprechende Datenquelle codiert ist und im Falle einer Datenbank auch noch, wie der Verbindungszeichensatz eingestellt ist.

                          Außerdem hast du noch nicht erwähnt, wie die genaue Fehlermeldung lautet, oder validiert das XML und nur du siehst die interpretierte Zeichenfolge als Fehler?

                          Gruß,

                          Amica
                          Zuletzt geändert von AmicaNoctis; 13.09.2009, 02:44.
                          [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


                          • #14
                            PHP-Code:
                            <?xml version="1.0" encoding="ISO-8859-1">
                            Das war dei Lösung. Base geht auch mit ISO was ich nicht wußte. Danke für die Hilfe.
                            Gut geraten ist halb gewußt.

                            Kommentar

                            Lädt...
                            X