次のような変形された文字列がたくさん含まれているテキストファイルを使用しています。
VyplÅ<88>te prosÃm pole "jméno
私のエディタによると、ファイルのエンコーディングはlatin1です。文字列は発音区別符号を含むチェコ語の文であると想定されているため、間違って表示されるのも不思議ではありません。エディターでutf8およびlatin2エンコーディングを強制しようとしましたが、役に立ちませんでした。また、iconvを使用してファイルをlatin1からutf8またはlatin2に変換しようとしましたが、どちらも役に立ちませんでした。私はこのような問題に頻繁に遭遇し、手動で文字列を書き直す以外の解決策を知りません。これを修正するためのより良い方法はありますか?
編集:
元の文は次のとおりです。
Vyplňte prosím pole "jméno"
不正な形式の文字列が発生する部分の16進ダンプは次のとおりです。
0002640: 6a6d 656e 6f22 5d20 3d20 2744 453a 2056 jmeno"] = 'DE: V
0002650: 7970 6cc5 8874 6520 7072 6f73 c3ad 6d20 ypl..te pros..m
0002660: 706f 6c65 2022 6a6d c3a9 6e6f 222e 273b pole "jm..no".';
EDIT2:
decezeが言ったように、上の文は本当に正しいutf8です。しかし、私はちょうどいくつかの奇妙なことを発見しました。ファイルをutf8からutf8(iconvを使用)にトランスコードしようとすると、単語でエラーが発生します:Postgebühr
atcharacter ü
。16進ダンプを見ると、この文字は\xfc
(10進数で252)として表されます。これは、有効なlatin1バイトエンコーディングですü
が、完全に無効なutf8バイトエンコーディングです。ファイルの一部はlatin1にあり、別の部分はutf8にあるようです。これがlatin1にあるファイルの一部です(おそらく):
0000250: 506f 7374 6765 62fc 6872 273b 0a09 0963 Postgeb.hr';...c
0000260: 6f6e 665b 2277 6166 6572 7322 5d20 3d20 onf["wafers"] =
0000270: 2744 453a 206f 706c c3a1 746b 20c3 273b 'DE: opl..tk .';
これを詳しく調べてみると、これはlatin1でも有効なlatin1の原因ではないようですが、文字化けしています(DE: oplátk Ã
おそらくではなくDE: oplatky za
)。ファイルのこの部分には、破損したテキストが含まれているようです。
このファイルのエンコーディングがどのように混同されたのか理解できません。何か案は?