私が作業しているファイルで見つけた奇妙な文字を識別しようとしています:
$ cat file
�
$ od file
0000000 005353
0000002
$ od -c file
0000000 353 \n
0000002
$ od -x file
0000000 0aeb
0000002
ファイルはISO-8859エンコーディングを使用しており、UTF-8に変換できません。
$ 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
私の主な質問は、od
ここの出力をどのように解釈できるかです。異なる文字表現間で翻訳できるこのページを使用しようとしていますが005353
、「16進コードポイント」は卓
正しくないように見え0aeb
、「16進コードポイント」は૫
また間違っているようです。 。
では、3つのオプション(355
、005353
または0aeb
)のいずれかを使用して、それらが表す文字を見つけるにはどうすればよいですか?
はい、私はUnicodeツールを試しましたが、それも有効なUTF文字ではないようです。
$ 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
Unicode U + FFFD文字の説明を理解すると、それは実際の文字ではなく、破損した文字のプレースホルダーになります。ファイルは実際にはUTF-8でエンコードされていないため、これは理にかなっています。
ë
データが別のプログラムで使用されるときに私が見るものです!しかし、どうすればこれを知ることができますか?私が提供するデータのどこかにありませんか?どうやって分かったの?ああ、試してみiconv
ました-f ISO-8859
が、conversion from
ISO-8859 'はサポートされていません。
eb
無視して無視する必要0x
があった。このようなことに対する私の無知は深い。@StephenKittを説明する回答を投稿していただけませんか?
iconv
は成功したでしょう。ウィキペディアなどで調べた可能性があります。この非常に特殊なエンコーディングでは、fileformat.info / info / unicode / char / 00eb / index.htmも機能します(Unicodeは、128-255の範囲でISO-8859-1と同等ですが、もちろん、UTFエンコーディングとは互換性がありません。 )。
iconv
ソース文字セットを指定しなかったため文句を言うので、おそらくUTF-8であるデフォルトを使用します。)