Ich versuche, ein seltsames Zeichen zu identifizieren, das ich in einer Datei gefunden habe, mit der ich arbeite:
$ cat file
�
$ od file
0000000 005353
0000002
$ od -c file
0000000 353 \n
0000002
$ od -x file
0000000 0aeb
0000002
Die Datei verwendet die ISO-8859-Codierung und kann nicht in UTF-8 konvertiert werden:
$ iconv -f ISO-8859 -t UTF-8 file
iconv: conversion from `ISO-8859' is not supported
Try `iconv --help' or `iconv --usage' for more information.
$ iconv -t UTF-8 file
iconv: illegal input sequence at position 0
$ file file
file: ISO-8859 text
Meine Hauptfrage ist, wie ich die Ausgabe von od
hier interpretieren kann . Ich versuche, diese Seite zu verwenden, auf der ich zwischen verschiedenen Zeichendarstellungen übersetzen kann, aber sie sagt mir, dass 005353
ein "Hex-Code-Punkt" 卓
nicht richtig und 0aeb
ein "Hex-Code-Punkt" ૫
wiederum falsch erscheint .
Also, wie kann ich eine der drei Optionen verwenden ( 355
, 005353
oder 0aeb
) , um herauszufinden , was Charakter , den sie darstellen soll?
Und ja, ich habe es mit Unicode-Tools versucht, aber es scheint auch kein gültiges UTF-Zeichen zu sein:
$ uniprops $(cat file)
U+FFFD ‹�› \N{REPLACEMENT CHARACTER}
\pS \p{So}
All Any Assigned Common Zyyy So S Gr_Base Grapheme_Base Graph X_POSIX_Graph
GrBase Other_Symbol Print X_POSIX_Print Symbol Specials Unicode
Wenn ich die Beschreibung des Unicode U + FFFD-Zeichens verstehe, ist es überhaupt kein echtes Zeichen, sondern ein Platzhalter für ein beschädigtes Zeichen. Dies ist sinnvoll, da die Datei nicht UTF-8-codiert ist.
ë
das sehe ich, wenn die Daten in einem anderen Programm verwendet werden! Aber wie kann ich das wissen? Ist es nicht irgendwo in den Daten, die ich zur Verfügung stelle? Wie hast du das gefunden? Oh, ich hatte es iconv
mit versucht, -f ISO-8859
aber es beschwerte sich über conversion from
ISO-8859 "wird nicht unterstützt".
eb
den 0x
Hex-Indikator oder was auch immer das verwenden und ignorieren . Meine Unkenntnis dieser Art von Dingen ist tief. Könnten Sie eine Antwort posten, die erklärt, dass @StephenKitt?
iconv
wäre es dir gelungen; und / oder du hättest es zB bei Wikipedia nachschlagen können. Für diese sehr spezifische Codierung funktioniert auch fileformat.info/info/unicode/char/00eb/index.htm (Unicode entspricht ISO-8859-1 im Bereich von 128-255, obwohl natürlich keine UTF-Codierung damit kompatibel ist ).
iconv
beschwert sich, weil Sie den Quellzeichensatz nicht angegeben haben, daher wird Ihr Standard verwendet, der wahrscheinlich UTF-8 ist.)