次のように、ISO-8859-1テキストファイル(ポーランド語字幕)のエンコードに問題があります。
Mieszka³サム、|¿アドネイ¿オンニ、ジエシ。
"Mieszkał sam、żadnejżony、dzieci"でなければなりません。
私は試した:
- iconvを使用してテキストファイルをUTF-8に変換する
- Meditを使用してエンコーディングをUTF-8に変更します。
- システム言語をポーランド語に変更します。 (システム言語では英語ロケールを使用していますが、ポーランド語のキーボード設定は使用しています。)
私はArch Linuxディストリビューションを使用しています。事件に影響を与える可能性がありますので、現場情報をお上げいたします。
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=
すべての回答に感謝します。
答え1
ポーランド語の標準8ビットエンコーディングは次のとおりです。latin2(別名ISO 8859-2)。 3はł、¿を表します。 żなどを表すテキストは、latin2テキストを表すバイト列をあたかもlatin1を表すかのように解釈した結果です。 ISO 8859-1としても知られているLatin1は、ほとんどの西ヨーロッパ言語の標準エンコーディングです。
テキストが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
答え2
解決策を見つけて、同じ問題を抱えている他の人に役立つ可能性があるので、答えをここに残しておきます。
さまざまなエンコーディングを使用してテキストファイルを開く!私(ポーランド人)の場合はCP1250(中央ヨーロッパ)です。これを行うには、geditを開き、「開く」オプションを選択して必要なファイルを見つけます。次に、文字エンコード(左下)を選択し、「WINDOWS-1250」を選択します。
映画の字幕に関連付けられているため、映画の字幕を実行する前に毎回手動でエンコードを変更する必要はありません。ほとんどすべてのビデオプレーヤーには、デフォルトの字幕エンコーディングを選択するオプションがあります。ポーランド語の場合、Windows-1250を選択すると、アプリケーションはそのエンコードでエンコードされているかのように字幕を読み取ります。
とにかくギルスにご協力いただきありがとうございます!