CentOS 6.9
Linux 2.6.32-696.10.1.el6.x86_64
Apache/2.2.15
file-5.04
WinSCP 5.11.2
PuTTY 0.70
notepad++ npp.7.5.1.bin.minimalist.x64
Hallo,
auf der Suche nach einem Programm, das die Enkodierung einer Datei anzeigt, habe ich file gefunden, das laut manpage ein --mime-encoding anbietet.
Ich nutze WinSCP und PuTTY. In WinSCP habe ich verschiedene Test sowohl mit dem WinSCP internen Editor (UTF-8) als auch notepad++ gemacht, wobei notepad++ mehr Möglichkeiten bietet.
Wenn ich ein file neu in UTF-8 encoded erstelle, egal ob in WinSCP internal Editor oder notepad++, das nur ANSI-Zeichen enthält, dann zeigt file -b --mime-encoding us-ascii anstatt utf-8. In notepad++ besteht die Möglichkeit das file zu rekodieren, Decode to UTF-8-BOM. Eine Datei, die in UTF-8-BOM encoded ist und nur ANSI-Zeichen enthält, wird mit file -b --mime-encoding (fast richtig) als utf-8 angezeigt.
Soweit ich mich bisher belesen habe, ist es wohl schwierig UTF-8 zu erkennen, weil diesem das BOM fehlt. Andererseits haben andere Programme Probleme mit dem BOM, da sie es anscheinend mit anzeigen. Die neuesten Versionen von notepad++ haben auch Probleme UTF-8 zu erkennen. Einige Programme bieten die Möglichkeit ANSI als UTF-8 erkennen zu lassen. Ganz genau habe ich das noch nicht durchblickt, aber es scheint Probleme zu bereiten. Andersherum: Wenn ein in UTF-8 encoded file als ANSI erkannt wird und als solches geöffnet, editiert und gespeichert wird, gehen alle Zeichen außerhalb von ANSI verloren. Der WinSCP interne Editor gibt dann den Hinweis: "Error loading file ...\*.txt using UTF-8 encoding. Falling back to 1252 (ANSI - Lateinisch I) encoding." Und danach kann man die Datei einfach nur noch löschen, bzw. den Inhalt in eine neue kopieren, oder gleich notepad++ verwenden, aber nicht die neuesten Versionen.
Was ich dann noch gefunden habe ist incov.
iconv -l bietet eine große Auswahl an Codes, schön und gut, aber es nützt einem nichts, wenn UTF-8 als ASCII erkannt wird und eine Konvertierung eines in UTF-8 konvertierten files von ASCII zu UTF-8 stattfindet. Ganz genau kann ich meine Tests jetzt nicht mehr nachvollziehen, an irgendeinem Punkt kamen nur noch Hieroglyphen dabei raus.
Gibt es ein Programm, das UTF-8 erkennt?
PS: Bitte den Unterschied zwischen encoding und charset beachten. Einige Programme verwechseln die Begriffe, was die ganze Angelegenheit noch mehr verwirrt.
Weitere Infos:
Ein in UTF-8 encoded file mit UTF-8 Zeichen wird von file -b --mime-encoding als utf-8 erkannt. Das erweckt den Anschein, das --mime-encoding nicht die Kodierung checkt, sondern den verwendeten charset, also die verwendeten characters und sich daraus einen charset denkt, den es als encoding ausgibt. uncool.
Lesezeichen