.htaccessでPHPのファイルアップロードサイズの上限値を変更
2022.02.5
PHPを使用して画像(動画・PDF等)をアップロードするフォームを作成した際に、ファイル…

ホームページ制作やWordPress運用をしていると、画像やPDFなどのファイル名に「日本語」を目にする機会があります。たとえば、「会社案内.pdf」や「商品名①.jpg」のような名前です。
普段は問題なく見えても、サーバー移転などのタイミングで大きなトラブルを引き起こす可能性があります。
今回は、弊社がWordPressのサーバー移転時に経験した実際のトラブルをもとに、なぜ日本語ファイル名は非推奨とされているのかを初心者向けにわかりやすく解説します。
まず大前提として、日本語ファイル名は日常業務でよく使われています。
そのため、多くの方が「日本語ファイル名=普通に使えるもの」と認識されていても不思議ではありません。
しかしながら、「普段使えているからOK」では通用しないのがWebの世界です。
これは実際に弊社で行った移転作業中に起こった事例です。
移転前のデータをダウンロードし、移転先のサーバーへFTPを使用してアップロード、全ての設定を完了し、サイトを開いてみると画像が一部表示されず、PDFも開けない。
調べてみると、ファイル名に日本語が含まれているメディアだけが読み込まれていないことがわかりました。
最終的には、20点程度の日本語名で登録されていたファイルを全て再登録することで問題を解消できたのですが、再登録の必要なファイルの数が多かった場合は、より多くの時間を費やすことになったでしょう。
ホームページで使用するファイル名を日本語にすることについて基本的には非推奨とされています。
理由は「日本語ファイル名やURLは、見た目とは違って実際には英数字に変換(エンコード)されて処理されている」からです。
たとえば、次のような日本語URL「https://example.com/会社概要」は、実際にはブラウザやサーバーの内部では「https://example.com/%E4%BC%9A%E7%A4%BE%E6%A6%82%E8%A6%81」のように変換されて扱われています。
このような変換は、インターネットの国際的なルール(RFC 3986)により決まっています。
URLで使用できるのは英数字や一部記号のみとされているため、日本語や全角文字は自動的に「パーセントエンコード」という形で処理されます。
見た目には「日本語が使えている」ように見えますが、それはブラウザが気を利かせて“元の日本語”で表示してくれているだけで、実際には複雑な文字列として扱われており、システムによってはこれをうまく処理できないことがあります。
ワードプレスの普及で日本語のファイルをそのままアップロードしたり、URLに日本語を使用したものも見かけるようになりました。
パソコン上で作業をしている時(ローカル環境)には問題なく表示されていることもあるため、日本語のファイル名のままサーバーにアップロードしてしまう方も多いようですが、サーバーによっては日本語のファイル名を正しく処理できないものも存在します。
安定した運用やトラブル防止のために、ホームページに使用するファイルは最初から英数字のファイル名にしておくことを強くおすすめします。

2022.02.5
PHPを使用して画像(動画・PDF等)をアップロードするフォームを作成した際に、ファイル…

2020.10.3
テキストエリア等で入力した文字の中にURLを含んでいた場合に、自動で認識してリンクタグを…

2024.03.30
外部ファイル(CSVファイル等)を読み込んでサイト内に表示する際に、保存時の文字コードが…

2020.12.5
メールフォームからメールを送信する際に、画像(ファイル)を添付できるようにしてほしいとの…

2023.12.2
ワードプレスの投稿のカテゴリー機能を、目的ごとに使い分けたいというご要望があった際に、カ…

2020.08.1
動画ファイルをCMS化して保存するときに、多くの場合はファイルパスをデータベース(MyS…

2022.09.24
パソコンやスマートフォンの戻るボタンを使って画面を戻す(ブラウザバックする)時があります…

2022.02.19
画像データ等をサーバーにアップロードする際、一点づつアップロードしても良いけれど、ファイ…

2020.08.15
フォームの入力値やURLのパラメータ等、文字列や数値を受け取る際に正規表現を利用してバリ…

2019.12.29
メールフォーム等での入力値チェック(バリデーション)。PHPの「preg_match」(…