Kaputte gemailte Textdatei

07/01/2012 - 22:31 von Hannes Kuhnert | Report spam
Per Mail hat mich eine kaputte Textdatei erreicht. Genauer genommen handelt
es sich um eine VCard-Datei. In dieser befindet sich nach jedem „richtigen“
Zeichen ein Null-Byte.


Wie kann so etwas zu Stande kommen?

Die Mail wurde von Apple Mail erstellt. Die Übertragungscodierung des
problematischen Anhangs ist Base64. Der Inhalt ist in ISO 8859-15 o. à.
gefasst. Gelesen wurde mit KMail.


Ich habe die Extra-„Zeichen“ mal mit KWrite im Block-Modus rausgelöscht.
Danach ließ sich der Inhalt einwandfrei verwenden.

Wie kann man so eine kaputte Datei mit geringerem Aufwand korrigieren?
Hannes Kuhnert, Chemnitz
 

Lesen sie die antworten

#1 Peter J. Holzer
07/01/2012 - 23:04 | Warnen spam
On 2012-01-07 21:31, Hannes Kuhnert wrote:
Per Mail hat mich eine kaputte Textdatei erreicht. Genauer genommen handelt
es sich um eine VCard-Datei. In dieser befindet sich nach jedem „richtigen“
Zeichen ein Null-Byte.



UTF-16LE. Jedes Zeichen mit Unicode-Code <= 65535 wird durch zwei Bytes
dargestellt (Zeichen mit Code >= 65536 durch 4 Bytes). Eines der
Standard-Unicode-Formate, besonders unter Windows beliebt.

Die ersten beiden Bytes sollten 0xFF 0xFE sein.



Wie kann so etwas zu Stande kommen?



Jemand hat die VCard in diesem Format abgespeichert.


Die Mail wurde von Apple Mail erstellt.



Ich weiß nicht, ob bei vcards ein charset-Parameter vorgesehen ist, aber
wenn ja, dann hàttee Apple Mail den setzen sollen.

Die Übertragungscodierung des problematischen Anhangs ist Base64. Der
Inhalt ist in ISO 8859-15 o. à. gefasst.



"oder àhnlich". Ein € würde in ISO-8859-15 durch das Byte 0xA4
repràsentiert, in UTF-16LE hingegen durch die zwei Bytes 0xAC 0x20.
Ein "ž" in ISO-8859-15 wàre 0xB8 in UTF-16LE hingegen 0x7E 0x01.
Aber vermutlich kommt in deiner VCard kein Zeichen vor, an dem Du den
Unterschied erkennen könntest - die Tatsache, dass jedes Zeichen durch
zwei Bytes repràsentiert ist, ist aber meistens schon ausreichend, um
UTF-16 zu identifizieren.


Gelesen wurde mit KMail.


Ich habe die Extra-„Zeichen“ mal mit KWrite im Block-Modus rausgelöscht.
Danach ließ sich der Inhalt einwandfrei verwenden.

Wie kann man so eine kaputte Datei mit geringerem Aufwand korrigieren?



iconv -f UTF-16LE < alt > neu

Mit dem vim öffnen
:set fileencoding=utf-8 (oder was auch immer gewünscht ist)
abspeichern
sollte auch gehen.

hp


_ | Peter J. Holzer | Deprecating human carelessness and
|_|_) | Sysadmin WSR | ignorance has no successful track record.
| | | |
__/ | http://www.hjp.at/ | -- Bill Code on

Ähnliche fragen