2016年の9月ごろにに入ってワードプレスを自動更新したところ、画像のファイル名が日本語の場合に文字化けするようになってしまいました。
画像アップロード時のタイトル文字化け具体例
具体的にはこんな感じに↓
ファイル名:ワードプレスロゴ.png
という名前でローカルに保存したファイルをWordpressのメディアライブラリーにアップロードすると
画像タイトル:%e3%83%af%e3%83%bc%e3%83%89%e3%83%97%e3%83%ac%e3%82%b9%e3%83%ad%e3%82%b4
とサニタイズされてしまう仕様になってしまったようです。
サニタイズとは?
サニタイジングとは、テキストデータ上の「&」や「>」など特殊文字を一般的な文字列に変換する処理のことである。 サニタイジング(sanitizing)はもともと「消毒する」「無害化する」などの意味を持つ英語である。
参照:Weblio辞書
画像アップロード時のタイトル文字化けの原因と対策
これはWordpress4.6.1になって仕様変更があったようです。
具体的にはWordpressの
public_html > wp-admin > includes > media.php
のタイトルが
$title = sanitize_title( $basename );
となっているのが原因です。
アップロードした画像のタイトルを手動で1つ1つ修正しても解決できますが、アップロードする画像の数が多いと非常に面倒です。
私のように今すぐ解決したい方は
$title = sanitize_title( $basename );
の部分を
$title = $basename;
と書き換えれば日本語名の画像をアップロードしても文字化けしなくなります。勿論言うまでもないですが、Wordpresの本体を書き換えるのでバックアップを取ってから自己責任で行ってください。
ちなみに次のバージョン4.6.2で修正されるようですのでお急ぎの方以外は時間が解決してくれそうです。
ブログをアップし続けていると、過去にアップロードした画像を名前で検索する機会も多く、サニタイズされてしまうと日本語で画像をメディアライブラリで検索してもヒットしなくなってしまい困ります。
コメント