ISO-8859-1テキストファイル(ポーランド語の字幕)のエンコードに問題があります。これは次のようになります。
Mieszka³sam、|¿adnej¿ony、dzieci。
「Mieszkałsam、żadnejżony、dzieci」である必要があります。
私はもう試した:
ArchLinuxディストリビューションを使用しています。ケースに影響を与える可能性があるため、ロケールに関する情報を記載します。
locale
LANG=en_US.UTF-8
LC_CTYPE="en_US.UTF-8"
LC_NUMERIC=pl_PL.UTF-8
LC_TIME=pl_PL.UTF-8
LC_COLLATE="en_US.UTF-8"
LC_MONETARY=pl_PL.UTF-8
LC_MESSAGES="en_US.UTF-8"
LC_PAPER=pl_PL.UTF-8
LC_NAME="en_US.UTF-8"
LC_ADDRESS="en_US.UTF-8"
LC_TELEPHONE="en_US.UTF-8"
LC_MEASUREMENT=pl_PL.UTF-8
LC_IDENTIFICATION="en_US.UTF-8"
LC_ALL=
ご回答ありがとうございます。
ポーランド語の標準の8ビットエンコーディングは latin2 a.k.a. ISO 8859-2 です。 łは³、żは¿などのテキストは、latin2のテキストを表すバイトシーケンスを、latin1を表すかのように解釈した結果です。 Latin1 a.k.a. ISO 8859-1は、ほとんどの西ヨーロッパ言語の標準エンコーディングです。
テキストがlatin2でエンコードされている場合は、latin1からUTF-8ではなく、latin2からUTF-8に変換する必要があります。
iconv -f latin2 -t utf8
(-t utf8
は、UTF-8ロケールを呼び出しているため、ここではオプションです。)
表示しているのがテキストを読んでいる場合は、ある時点で8ビットからUnicodeに正しく変換されていないことを意味します。これを修正するには、元のバイトに変換してから、それらをエンコードに変換します。
iconv -f utf8 -t latin1 | iconv -f latin2 -t utf8
私は解決策を見つけました。同じ問題を抱えている他の人々に役立つかもしれないので、ここに答えを残しておきます。
別のエンコーディングを使用してテキストファイルを開きます!私(ポーランド語)にとっては、CP1250(中央ヨーロッパ)でした。これを行うには、geditを開き、[開く]オプションを選択して、必要なファイルを見つけます。次に、文字エンコード(左下)を選択し、「WINDOWS-1250」を選択します。
映画の字幕に関連しているため、映画で字幕を実行する前に毎回手動でエンコードを変更する必要はありません。ほとんどすべてのビデオプレーヤーには、デフォルトの字幕エンコーディングを選択するオプションがあります。ポーランド語の場合は、Windows-1250を選択するだけで、アプリケーションは字幕をそのコーディングでエンコードされているかのように読み取ります。
とにかく、Gillesの助けに感謝します!