[Bug] Einfügen von UTF-8-Zeichen aus Zwischenablage in Textkörper erzeugt falsche Kodierung

Diese Seite verwendet Cookies. Durch die Nutzung unserer Seite erklären Sie sich damit einverstanden, dass wir Cookies setzen. Weitere Informationen

  • [Bug] Einfügen von UTF-8-Zeichen aus Zwischenablage in Textkörper erzeugt falsche Kodierung

    Bei mir fügt Zwischablage falsch in Textmails ein.
    The Bat! 8.0.18 32bit Windwos 10 x64

    Testcase:
    Öffnet labs.gwendragon.de/blog/News/s…age-gutes-neues-jahr-2017 (Seite ist korrekt UTF-8 kodiert)
    Kopiert den Text der Überschrift 'Ich wünsche Allen schöne Festtage und ein Gutes Neues Jahr' mitsamt den Unicodezeichen von der Seite in die Zwischenanlage
    Öffnet The Bat! dessen Vorlage für Neue Nachricht in den Einstellungen auf UTF-8 gestellt ist
    Fügt ihn den Text aus der Zwischenablage in den textkörper ein
    Speichert das Mail als Entwirf
    Zeigt das Mail im Ordner Entwurf an
    Text zeigt "Ich wünsche Allen schöne Festtage 🎄und ein Gutes Neues Jahr 🎆"

    Bei euch auch?
    The Bat! Pro 8.x BETA (32bit) | Win 10 Pro x64 | GnuPG 2.2.x | XMP + Regula


    Wer mich Er oder der Drache nennt, bekommt von der Drachin Pratze und Feuer zu spüren.
  • Bei mir wird der Text korrekt aus der Zwichenablage eingefügt (MicroEditor). Lediglich die Symbole werden "kryptisch" dargestellt.

    Win 7_64bit
    TehBat!_ 8.0.18_64bit
    Die meisten Menschen sind bereit zu lernen, aber nur die wenigsten, sich belehren zu lassen.
    Winston Churchill

    Dieser Beitrag wurde bereits 1 mal editiert, zuletzt von Heidrun ()

  • Heidrun schrieb:

    Bei mir wird der Text korrekt aus der Zwichenablage eingefügt (MicroEditor). Lediglich die Symbole werden "kryptisch" dargestellt
    In den Editor ja, aber sobald du die Nachricht als Entwurf speicherst und den Editor verlässt, siehst du im Viewer falsch kodierte Umlaute. Man braucht die Nachricht also nicht mal zu versenden. Öffnet man den Entwurf wieder im Editor, wird alles bis auf die zwei Bilder richtig angezeigt. Man muss die Schritte zur Reproduktion im BT beachten.
  • Zudem kennt Windows 7 meines Wissens noch nicht diese neuen Emojis (es sind keine Bilder! sonder im Unicode-Zeichensatz) und hat auch nicht den Zeichensatz zur Darstellung.
    The Bat! Pro 8.x BETA (32bit) | Win 10 Pro x64 | GnuPG 2.2.x | XMP + Regula


    Wer mich Er oder der Drache nennt, bekommt von der Drachin Pratze und Feuer zu spüren.
  • GwenDragon schrieb:

    Zudem kennt Windows 7 meines Wissens noch nicht diese neuen Emojis
    Wenn die entsprechende Schriftart installiert ist, dann müsste das OS keine Rolle spielen, solange es Unicode unterstützt. Im Browser werden diese Bilder-Zeichen unter Windows 7 jedenfalls richtig dargestellt. Beim Kopieren in Word sieht man sie auch. Word zeigt dabei an, dass es sich hierbei um die Schriftart Segoe UI Symbol handelt. Die Segoe-Familie ist zwar Standard unter Win10, wurde aber wohl mit irgendeinem Update auch unter Win7 installiert.

    Ich habe das jetzt extra getestet. Wenn man in TB! die o.g. Schriftart einstellt, dann werden auch die Bilder im Editor richtig angezeigt. Der Viewer spinnt aber weiterhin.
  • Heidrun schrieb:

    Ich kann den Bug leider nicht bestätigen
    Und wenn du die Nachricht dir selbst zuschickst?

    Bei mir kommt sie so an:

    Quellcode

    1. Ich wünsche Allen schöne Festtage 🎄und ein Gutes Neues Jahr 🎆


    Interessant ist aber, dass bei mir unten noch "Mit freundlichen Grüßen" steht und dass z.B. der Buchstabe "ü" in "wünsche" und "Grüßen" im Quelltext identisch mit =C3=BC kodiert ist:

    Quellcode

    1. w=C3=BCnsche
    2. Gr=C3=BC=C3=9Fen


    "Grüßen" wird dabei richtig angezeigt, "wünsche" aber nicht.
  • Ich glaube das Problem gelöst zu haben. "Einfügen von UTF-8-Zeichen" ist falsch, denn es sind keine UTF-8, sondern UTF-16LE Zeichen.

    Bei mir sind in den TB!-Benutzereinstellungen unter "Zeichensätze" insgesamt vier Unicode-Zeichensätze verfügbar:
    1. Unicode
    2. Unicode (Big-Endian)
    3. UTF-7
    4. UTF-8

    Der zweite ist UTF-16BE, der erste müsste demnach UTF-16LE (also Little-Endian) sein. Wenn ich nämlich "Unicode (Big-Endian)" einstelle, dann bekomme ich die Fehlermeldung:

    Quellcode

    1. Could not perform conversion from "UTF-16LE" into "unicodeFFFE"
    "unicodeFFFE" ist der IETF-Name von UTF-16BE. Die Fehlermeldung besagt also, dass vorhandene UTF-16LE Zeichen nicht in UTF-16BE konvertiert werden können. Wieso eine ähnliche Fehlermeldung nicht bei UTF-8 erscheint, ist nicht verständlich.

    Jedenfalls sind alle Umlaute auch im Viewer sichtbar, wenn man als Zeichensatz für die Nachricht Unicode bzw. UTF16LE einstellt. Es ist also kein Bug. Das einzige Problem ist nur, dass bei UTF-8 nicht gewarnt wird, dass ein falscher Zeichensatz verwendet wird.
  • sanyok schrieb:

    Heidrun schrieb:

    Bei mir wird der Text korrekt aus der Zwichenablage eingefügt (MicroEditor). Lediglich die Symbole werden "kryptisch" dargestellt
    In den Editor ja, aber sobald du die Nachricht als Entwurf speicherst und den Editor verlässt, siehst du im Viewer falsch kodierte Umlaute. Man braucht die Nachricht also nicht mal zu versenden. Öffnet man den Entwurf wieder im Editor, wird alles bis auf die zwei Bilder richtig angezeigt. Man muss die Schritte zur Reproduktion im BT beachten.

    sanyok schrieb:

    Heidrun schrieb:

    Ich kann den Bug leider nicht bestätigen
    Und wenn du die Nachricht dir selbst zuschickst?
    Bei mir kommt sie so an:

    Quellcode

    1. Ich wünsche Allen schöne Festtage 🎄und ein Gutes Neues Jahr 🎆

    Interessant ist aber, dass bei mir unten noch "Mit freundlichen Grüßen" steht und dass z.B. der Buchstabe "ü" in "wünsche" und "Grüßen" im Quelltext identisch mit =C3=BC kodiert is
    Auch wenn ich die Mail an mich selbst verschicke - die Umlaute werden korrekt angezeigt. Allerdings habe ich in den Benutzereinstellungen die Vorgabe bei den Zeichensätzen nicht geändert, es ist also lediglich UTF-8 aktiviert. Vielleicht ist ja dort die Ursache zu suchen?
    Die meisten Menschen sind bereit zu lernen, aber nur die wenigsten, sich belehren zu lassen.
    Winston Churchill
  • Hexdump der herunter geladenen HTML-Datei zeigt:
    1470 : 0A 0A 49 63 68 20 77 C3 BC 6E 73 63 68 65 20 41 ..Ich w..nsche A
    1480 : 6C 6C 65 6E 20 73 63 68 C3 B6 6E 65 20 46 65 73 llen sch..ne Fes
    1490 : 74 74 61 67 65 20 F0 9F 8E 84 75 6E 64 20 65 69 ttage ....und ei
    14A0 : 6E 20 47 75 74 65 73 20 4E 65 75 65 73 20 4A 61 n Gutes Neues Ja
    14B0 : 68 72 20 F0 9F 8E 86 0A 3C 2F 61 3E 0A 3C 2F 68 hr .....</a>.</h

    Als da wäre
    F0 9F 8E 84 unicode-table.com/en/1F384/
    F0 9F 8E 86 unicode-table.com/en/1F386/

    Das ist eine UTF-8-Sequenz aus dem F0-Block.

    @sanyok Bitte warum soll UTF-8 der falsche Zeichensatz in dem Fall sein wie du im Bugtracker schreibst?
    The Bat! Pro 8.x BETA (32bit) | Win 10 Pro x64 | GnuPG 2.2.x | XMP + Regula


    Wer mich Er oder der Drache nennt, bekommt von der Drachin Pratze und Feuer zu spüren.

    Dieser Beitrag wurde bereits 5 mal editiert, zuletzt von GwenDragon ()

  • GwenDragon schrieb:

    Bitte warum soll UTF-8 der falsche Zeichensatz in dem Fall sein wie du im Bugtracker schreibst?
    Weil:
    1. Beim falschen Zeichensatz die o.g. Fehlermeldung erscheint, die besagt, dass UTF-16LE Zeichen nicht konvertiert werden können.
    2. Beim Einstellen von "Unicode" (also UTF-16LE) anstelle von UTF-8 es das Problem nicht gibt.

    Es kann jetzt natürlich sein, dass TB! diese Zeichen fälschlicherweise als UTF-16LE Zeichen interpretiert, aber das muss Ritlabs klären. Ich habe momentan nur diese Infos.

    Edit:
    Es kann jetzt auch sein, dass ursprünglich die Zeichen auf der Webseite UTF8-Zeichen waren, beim Kopieren in die Windows-Zwischenablage jedoch automatisch von Windows (vielleicht wegen der Bilder) in UTF.16LE konvertiert wurden und daher beim Einfügen in TB! nicht mehr UTF-8 Zeichen waren.
  • sanyok schrieb:

    Zeichen auf der Webseite UTF8-Zeichen waren, beim Kopieren in die Windows-Zwischenablage jedoch automatisch von Windows (vielleicht wegen der Bilder) in UTF.16LE
    Kann sein, dass The Bat! die Zwischenablage das vermurkst.
    Aber es gibt keine Bilder im Text, das sind Unicode Zeichen die Windows aus Segoe Emoji-Schrift holt.

    Was schon seltsam ist, dass ich aus der Webseite kopieren und in irgendein Webmail, Libreoffice oder Notepad einfügen kann.
    The Bat! Pro 8.x BETA (32bit) | Win 10 Pro x64 | GnuPG 2.2.x | XMP + Regula


    Wer mich Er oder der Drache nennt, bekommt von der Drachin Pratze und Feuer zu spüren.

  • Wenn ich die Nachricht im TB!-Editor als UTF-8-TXT speichere, dann bekomme ich in einem Hex-Editor dasselbe Ergebnis. Dann ist auch in TB! insoweit alles OK.

    Ich habe mittlerweile festgestellt, dass die Zeichen beim Versand richtig kodiert werden, nur dass der TB!-Viewer sie falsch anzeigt. Wenn man nämlich eine empfangene Nachricht im TB!-Editor öffnet, dann sieht man wieder korrekte Umlaute, was aber nicht hätte sein können, wenn die Nachricht falsch kodiert wäre. Wenn man außerdem eine solche Nachricht z.B. in Thunderbird empfängt, dann wird dort auch alles richtig dargestellt. Es spinnt also nur der TB-Viewer.


    GwenDragon schrieb:

    Aber es gibt keine Bilder im Text, das sind Unicode Zeichen die Windows aus Segoe Emoji-Schrift holt.
    Ja, ich meine auch die beiden Bilder-Zeichen "Christmas Tree" und "Fireworks" aus der Schriftart Segoe UI Symbol (s.o.), wollte das nur abkürzen. Diese Schriftart beinhaltet auch normale Buchstaben (z.B. im Gegensatz zu Webdings und Wingdings). Stellt man sie sowie UTF16-LE in TB! ein, sieht man alles wie z.B. im Browser. Es funktioniert also schon, nur dass für TB! das UTF16-LE Zeichen sind und sie daher bei jedem anderen Zeichensatz falsch kodiert werden oder eine Fehlermeldung erscheint.

    Auf der anderen Seite soll's bei Heidrun gerade mit UTF-8 klappen (s.o.).


    GwenDragon schrieb:

    Libreoffice
    Funktioniert wahrscheinlich wie MS Word, zu dem ich oben schon geschrieben habe. Da kann man ja für jeden Buchstaben eine andere Schriftart wählen. In TB! aber nur für den gesamten Text.


    Notepad wollte ich auch schon als Beispiel nennen. Bei mir werden die beiden Bilder-Zeichen sowohl in MS Notepad als auch z.B. in Notepad++ erst angezeigt, wenn ich Segoe UI Symbol wähle, also genauso wie in TB!

    Habe das jetzt extra mit MS Notepad und Notepad++ hinsichtlich des Zeichensatzes getestet und es gibt widersprüchliche Ergebnisse.

    MS Notepad kann die Datei als UTF-16LE (heißt dort wie in TB! auch nur Unicode) und als UTF-8 speichern und beim Öffnen zeigt es in beiden Fällen alle Zeichen inkl. Bilder-Zeichen, wenn Segoe UI Symbol eingestellt ist, korrekt an.

    Notepad++ kann ebenfalls als UTF-16LE (heißt dort UCS-2 Little Endian) oder UTF-8 ohne jegliche Nachfrage oder Hinweis speichern, zeigt jedoch beim Öffnen die Bilder-Zeichen nur dann an, wenn sie zuvor als UTF-8 gespeichert wurden. Mit UTF-16LE gibt's hingegen Kauderwelsch, auch wenn Segoe UI Symbol eingestellt ist.

    Speichert man in MS Notepad als UTF-16LE und öffnet die Datei in Notepad++, werden die Bilder auch nicht angezeigt, in MS Notepad (und auch z.B. in AkelPad und Word) aber schon. Umlaute hingegen werden in beiden Programmen immer korrekt dargestellt, egal welchen Zeichensatz man nimmt.


    Edit:
    Auf deiner Webseite fehlt übrigens zwischen dem "Christmas Tree"-Zeichen und dem Wort "und" ein Leerzeichen. Vielleicht hat das TB! aus der Fassung gebracht? ;)
  • sanyok schrieb:

    Auf deiner Webseite fehlt übrigens zwischen dem "Christmas Tree"-Zeichen und dem Wort "und" ein Leerzeichen. Vielleicht hat das TB! aus der Fassung gebracht?
    Danke für den Hinweis, ich habe es geändert.

    Ausser Fassung? The Bett!? LOL. Nein, die Feldermaus hat wohl Winterschnarch.
    Wäre schön wenn das fehldne Leerzeichen hülfe, aber so ist es leider nur ein Weihnachtswusnch von dir. Denn wenn der UTF-8-Parser richtig interpretiert, weil er doch dass bei F0 noch drei Byte danach gescannt werden müssen und einem Zeichen ist es wurscht ob ein Leerzeichen folgt.
    The Bat! Pro 8.x BETA (32bit) | Win 10 Pro x64 | GnuPG 2.2.x | XMP + Regula


    Wer mich Er oder der Drache nennt, bekommt von der Drachin Pratze und Feuer zu spüren.