最近、one.com
Ubuntu 16とApacheを実行しているLinux vpsサーバーからWordPressサイトを移行しました。 åäöのある画像が壊れているように見えることを除いて、すべてがうまく機能します。右クリックしてリンクをコピーすると、次のようになります。
/images/vara-p%C3%A5l%C3%A4st1.jpg
これをブラウザのアドレスバーに貼り付けてEnterキーを押すと、次のようになります。
/images/vara-påläst1.jpg
404エラーが表示されます。/images/
ディレクトリ内のすべてのファイルがリストされているディレクトリに移動すると、ファイルがvara-påläst1.jpg
そこにあることがわかります。
イメージフォルダからリンクをコピーすると、次のようになります。
/images/vara-pa%cc%8ala%cc%88st1.jpg
これで正しい画像が確認されます。
明らかにファイル名に何か問題があるようです。エンコーディングの問題のようです。私はこの問題を解決しようとしましたが、convmv -f iso-8859-1 -t utf8 *
すべてのファイルはすでにUTF-8でエンコードされており、何も更新されていません。
別のネットワークホストからファイル名を転送した後、åäö文字を含むファイル名をどのように変更しますか?
答え1
convmv
正しいです。ファイル名はすでにUTF-8でエンコードされています。まだ正しく使うためのツールだと思います。
Unicodeでå
文字の外観を取得する方法はいくつかあります。最初の方法は、å
(U + 00E5)を文字自体でリンクにエンコードする方法です。
ただし、法線a
(U + 0061)を取り、円̊
(U + 030A)を結合文字として追加しますå
。移行中に、ファイル名を最初の表現から2番目の表現に再コーディングする必要があります。
これマニュアルページconvmv
「Normalized Form C」(Linuxで使用)と「Normalized Form D」(OS Xで使用)を参照してください。実験の結果、Cタイプはå
独自の単語を使用することを意味し、Dタイプはå
組合員を使用することを意味します。
問題が発生した場合は、既知のチェックポイントを取得できるようにファイルをバックアップしてから、以下を試してください。
convmv --nfc -f utf8 -t utf8 *
または、移行を再試行して、録音の問題を完全に回避できます。
古いホストにシェルアクセス権がある場合は、サイトtar
のアーカイブを作成(tar czf my_site.tar.gz my_site_directory
)してから、そのアーカイブを新しいホストにコピーしてそこから解凍できます(tar xzf my_site.tar.gz
)。これにより、ファイル名が別のファイルからのデータであるため、変更を防ぐことができます。