ホームページのサーバー で漢字のファイル名を使う


ブラウザが行うURLエンコードは、UTF8の文字コード使用で固定である。 
そのため、URLに含まれる漢字はUTF8の文字コードでサーバーへ伝えられる。
(※1 「URLエンコード」)

サーバー側のファイル名がSJISの文字コードで並んでいて、ブラウザから送られたアドレスの文字コードがUTF8であれば、
同じ内容を表していても、文字列としては別物なので、
サーバーは「ファイルが見つからない」というエラーを出す。

サーバーに置かれたファイル名1つにも文字コードというモノがある、というのは意外ではないかと思う。

ホームページを作成していて、漢字のファイル名を使いたいと思ったことはないだろうか。
漢字のファイル名を使ってホームページを作成し、ブラウザで「ファイルが見つからない」というエラーが出たとしたら、
この文字コードの不一致が原因かもしれない。

ホームページエディターとFTPソフトで文字コードとしてUTF8を選べばうまくいくはずだ。
  1. UTF8の文字コードで作成されたページ(ホームページエディターの設定でUTF8にして作成したページ)でリンクをクリック
  2. ブラウザはそのリンクのURLをUTF8でURLエンコード(ブラウザ側でUTF8固定になっている)
  3. サーバーはそのアドレスを受け取り、URLデコードする。するとデコードした後のアドレスの文字コードはUTF8である。(ここは特に説明し ていないが自動的にそうなる)
  4. サーバーのファイル名もUTF8になっている(FTPソフトの設定でUTF8を選んでファイル送信した)ので、目的のファイルが見つかる。
  5. その結果、サーバーはブラウザへ目的のファイルを送信することができる。
このようにすべての流れで文字コードがUTF8で一致していれば、ファイル名に漢字が 使えるのだ。

(※ホームページ領域を提供する業者が「漢字ファイル名不可」と指定しているときは使えないと思う)



■ ホームページエディター(フリーウェアの KompoZerの例)での文字コード指定:

ツールメニュー>設定…>新規ページ設定>文字エンコード>UTF-8を選ぶ
 これで新規ページは、UTF8で作成できる。


FTPソフト(フリーウェアのFFFTPの 例)での文字コード指定:

接続メニュー>ホストの設定>ホストを選んで、設定変更ボタン>文字コードタブ>右側 のUTF-8Nを選ぶ
これでファイル送信時は、ファイル名をUTF8にして送信できる。
※ちなみにKompoZerのFTP機能は標準でUTF8でファイル名を送信しているようです。 
(※2 FTPソフトでの注意点)




画像もなくわかりにくいかもしれませんが、漢字のファイル名が皆さんも使えるようになれば幸いです。

All Rights Reserved (C) 2012 CookiePudding.Document made with KompoZer



※1 「URLエンコード」

「URLエンコード」はユーザーがブラウザのアドレス入力 欄にhttp://で始ま るアドレスを入力してEnterキーを押したときに、
ブラウザ内部で行われる。

 URLに含まれる漢字は 通常のインターネットの通信では送 信できないので、
 漢字部分だけを、「%e6%bc%a2%e5%ad% 97」 といった文字に変換する。
 これをURLエンコードと呼ぶ。
 暗号のようなものを理解して自由に操り、自分のプログラム内に組み込み使うこと が、URLエンコードの面白いところと言える。

(戻る)



※2
FTPソフトでの注意点

  もし、今までFTPソフトの文字コード設定でSJISにして、なおかつ、漢字のファイル名のファイルを送信していた場合、SJISからUTF8へ設定変更すると、今までに送信した漢字のファ イル名はすべ て文字化けして表示されます。

 設定変更したことで、サーバー側のファイル名の文字コードと、FTP ソフトの表示 の文字コードが不一致になるからです。
 設定変更すると、送信ファイル名の文字コードの他に、表示の文字コー ドも合わせて 変更されます。

 設定を元に戻すと文字化けは直ります。

 文字化けをしている状態ではファイルの削除も文字コード不一致でファ イルを指定す ることができない状態です。
 その場合は一度SJISの設定にしてから作業をすることに なります

(戻 る)


ページの上端へ (もくじ開く)