Anzeige:
Ergebnis 1 bis 3 von 3

Thema: file -b --mime-encoding zeigt UTF-8 als us-ascii an

  1. #1
    Registrierter Benutzer
    Registriert seit
    Oct 2017
    Beiträge
    5

    file -b --mime-encoding zeigt UTF-8 als us-ascii an

    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.
    Geändert von muzika (19.12.17 um 14:33 Uhr)

  2. #2
    Registrierter Benutzer
    Registriert seit
    Dec 2003
    Ort
    Dettenhausen
    Beiträge
    22.054
    Ich fürchte, daß Problem dürfte darin liegen, daß um UTF-8 sauber zu erkennen eben auch UTF-8 drin sein muss.

    Das passiert entweder über das BOM - oder über entsprechenden Zeichen. Mit ersterem haben viele Probleme, mit letzerem auch :-) - oder man muss eben Glück haben.

    Solange Du halt nur ASCII drin hast - ist die Datei eben sowohl ASCII also auch UTF-8 "valide" (bei UTF-16 sähe das anders aus)
    Geändert von marce (19.12.17 um 14:37 Uhr)
    Ich bin root - ich darf das.

  3. #3
    Registrierter Benutzer
    Registriert seit
    Oct 2017
    Beiträge
    5
    Ja, du hast das Problem erkannt. Leider ist encoding nicht gleich charset. Es kann eben auch UTF-8 encoded files mit nur ANSI Zeichen geben, deswegen ändert sich die Kodierung des files nicht. Problem ist dann nur, dass es falsch erkannt wird.

    Dann gibt es also kein Programm, das UTF-8 erkennt?

    Der WinSCP interne Editor und auch notepad++ behelfen sich damit, dass sie die Möglichkeit bieten ANSI als UTF-8 zu erkennen, also eine Art "Fallback", bzw. Default: UTF-8. Geht auch anders herum. Aber beides ist nicht korrekt.
    PS: Ich habe in meinem Topic noch "Weitere Infos" hinzugefügt, während du deinen Beitrag geschrieben hast.

Ähnliche Themen

  1. Charakter Set (Encoding)
    Von windfinder im Forum System installieren und konfigurieren
    Antworten: 0
    Letzter Beitrag: 22.07.05, 18:42
  2. Encoding, UTF-8, blah
    Von mafiosnik im Forum System installieren und konfigurieren
    Antworten: 0
    Letzter Beitrag: 19.12.04, 17:34
  3. Antworten: 0
    Letzter Beitrag: 20.09.04, 00:09
  4. Encoding GUI für Ogg?
    Von dentaku im Forum Musik
    Antworten: 3
    Letzter Beitrag: 26.09.03, 10:13
  5. dvd::rip -> 2-pass encoding?
    Von clumsy im Forum Fernsehen
    Antworten: 6
    Letzter Beitrag: 01.06.03, 14:41

Lesezeichen

Berechtigungen

  • Neue Themen erstellen: Nein
  • Themen beantworten: Nein
  • Anhänge hochladen: Nein
  • Beiträge bearbeiten: Nein
  •