åäöウェブサイトを新しいホストに移動した後、ファイル名が機能しない

åäöウェブサイトを新しいホストに移動した後、ファイル名が機能しない

最近、one.comUbuntu 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)。これにより、ファイル名が別のファイルからのデータであるため、変更を防ぐことができます。

関連情報