私のファイル名は次のとおりですKäyttöohje.pdf
。この名前でなければなりませんKäyttöohje.pdf
。
以下を使用して、サブディレクトリ内のすべてのファイルを変換できます。
convmv -f utf8 -t iso-8859-1 -r --notest *
Käyttöohje.pdf
に変換されますKäyttöohje.pdf
。
問題は、ファイルがすでにフォームかどうかです。Käyttöohje.pdf
Käyttöohje.pdf
次に変換されたファイルK'$'\344''ytt'$'\366''ohje.pdf
上記のコマンドをどのように変更するか
Käyttöohje.pdf
Käyttöohje.pdf
(単独で残る)に変換されますKäyttöohje.pdf
まだ変換済みKäyttöohje.pdf
答え1
エラーファイルがデュアルUTF-8でエンコードされているようです。
たとえば、ä
U+00E4 は次のようにエンコードされます。
- U+00E4 -> 0xc3 0xa4(UTF-8エンコーディング)
- 0xc3 -> 0xc3 0x83 (iso8859-1
Ã
-> UTF-8), 0xa4 -> 0xc3 0xa4 (iso8859-1¤
-> UTF-8) ここで、U+00E4 の UTF-8 エンコーディングの各バイトは次のように解釈されます。シングルバイト文字セット(ここではiso8859-1またはwindows-1252)で別の文字をエンコードし、UTF-8に再エンコードします。
したがって、convmv -f utf8 -t iso-8859-1
それを使用するのは正しいです。ダブルエンコードされていないファイルを維持するには、特別なconvmv
オプションがありますので、--fixdouble
次のようにする必要があります。
convmv --fixdouble -f utf8 -t iso-8859-1 -r --notest .
専用セクションがあります。convmv
手動:
デュアルUTF-8(または他の)エンコードされたファイル名を元に戻す方法
場合によっては、特定のファイル名が「二重エンコード」されている可能性があります。たとえば、ファイル名はすでにUTF-8でエンコードされていますが、誤って一部の文字セットをUTF-8に変換しました。逆にすれば、簡単に操作をキャンセルできます。ソース文字セットはUTF-8でなければならず、ターゲット文字セットは以前に誤って使用したソース文字セットでなければなりません。 "--fixdouble"オプションを使用すると、convmvは変換後もUTF-8でエンコードされたファイルのみを処理し、UTF-8以外のファイルに影響を与えないようにします。以前に「--notest」なしで変換して正しい結果が得られていることを確認する必要があります。 "--qfrom"オプションも役に立ちます。二重utf-8ファイル名を印刷すると問題が発生する可能性があるためです。端末 - 一般的に制御機能が含まれています。ターミナルウィンドウで興味深いタスクを実行できるシーケンス。誤って変換した文字セットがわからない場合は、「--qfrom」を使用することは、ファイル名を壊さずに必要なエンコーディングを見つけるのに最適な方法です。
ÂÃÄÅÆÇÈÉÊËÌÍÎÏÐÑÒÓÔÕÖ×ØÙÚÛÜÝÞßàáâãäåæçèéêëìíîïðñòóô
iso8859-1(コードポイントU + 0000 U + 00FFを含む)でエンコードされたデュアルUTFファイルには、U + 00C2 - > U + 00F4()の範囲の1文字とU + 0080 -で構成される非ASCII文字シーケンスが含まれています含まれます。 > U + 00BFの範囲内の1つ以上の文字(U + 0080〜U + 009Fは制御文字と改行しないスペースです¡¢£¤¥¦§¨©ª«¬®¯°±²³´µ¶·¸¹º»¼½¾¿
)。特に、U + 00E0(上の最初のグループの小文字)の上の文字の後には、2番目のグループの少なくとも2つの文字が続く必要があることを考慮すると、これらのシーケンスは二重にエンコードされていないテキストに表示される可能性が比較的低いですconvmv --fixdouble
。間違っています。