私が作業しているファイルで見つけた奇妙な文字を識別しようとしています:
$ 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であるデフォルトを使用します。)