utf-8 mit Win Bordmitteln



  • wie editiert man Textdateien in utf-8 Codierung und 0xa Zeilenenden mit Win 7 Bordmitteln?

    mit dem Editor sehe ich keine Zeilentrennungen und mit wordpad keine Umläute.



  • Eine Möglichkeit wäre, mit notepad die Datei öffnen, save as, dabei sicherstellen, dass UTF8 encoding ausgewählt ist. Das fügt die utf8 signature hinzu, und dann kommt auch wordpad mit der Datei klar.
    Problem ist halt, dass je nach Verwendungszweck die Signatur stören kann. 😕



  • thx, das geht. wieso will Win diese ersten 3 Bytes, linux aber nicht - könnte man sich da mal einigen, rund 17 Jahre nach der Präsentation von utf-8 ?



  • Die ersten 2 Bytes, die du meinst, nennt man BOM und es ist wohl historisch bedingt, dass Windows die haben will. Windows hat Unicode ja eigentlich als UCS2 (oder angeblich UTF16, wobei ich davon ausgehe, dass viele Programme mit einem MB Zeichen nicht klarkommen) implementiert und da haben Unicodezeichen 16Bit also 2Byte. Wie die angeordnet sind hängt von der Endianess ab und daher gibt es im Unicodestandard die BOM ("Byte Order Mark"), damit Unicode auch wirklich portabel ist. Bei UTF-8 sind die Zeichen nur 8Bit also 1Byte groß und die Endianess spielt keine Rolle. Also ist ein BOM überflüssig. Aber es ist vom Unicodestandard dennoch erlaubt (aber nicht empfohlen) und wird unter Windows eben eingesetzt, damit man UTF-8 Dateien erkennen kann.

    Unter Unixsystemen interpretiert und speichert man Dateien im Normalfall einfach anhand der aktuell gesetzten Locale. Das ist vermutlich auch einfach historisch bedingt und das BOM würde eben eine Spezialbehandlung in den zahlreichen Texttools, wie grep, cut, cat und allen anderen Programmen erfordern.

    (Wobei aber vermutlich die meisten Linuxeditoren mit dem BOM zurecht kommen werden. Emacs hat extra einen Encoding dafür: utf-8-with-signature)



  • ach so ist das. Das Textfile beginnt bei mir jetzt mit ef bb bf. Widerspricht dann irgendwie dem un1x-Gedanken von wegen Datenaustausch vorzugsweise als Stream von lesbaren Zeichen.

    Aber wieso wird das BOM eingesetzt, um UTF-8 zu erkennen ?



  • Gibt es eine Erklärung wieso MS auf UTF-16 setzt? Hier ist ein wenig dazu: http://codesnipers.com/?q=utf-8-versus-windows-unicode

    In kurz, MS macht sich das Leben leichter, auf Kosten von anderen in Complexity, Compatibility, Size weil sie bereits UCS-2 eingebaut hatten.



  • 0xb.x.O51 schrieb:

    thx, das geht. wieso will Win diese ersten 3 Bytes, linux aber nicht - könnte man sich da mal einigen, rund 17 Jahre nach der Präsentation von utf-8 ?

    Es gibt UTF-8 sowohl mit als auch ohne BLOM.

    Was BLOM ist siehe Wikipedia.

    Tatsache ist aber nunmal, das Unix Shellscripte wegen dem BLOM Probleme machen.
    Deswegen gibt's auch UTF-8 ohne BLOM.


Anmelden zum Antworten