日本語ファイル名が使える Web レンタルサーバーとブラウザとの問題点・課題

仕事で Gmail やメールのやり取りで日本語名のファイルをやりとりして久しいのですが、実は、日本語ファイルを Web サイトで扱うのは非常に鬼門です。日本語ファイルをそのまま FTP でアップロードしてダウンロードできるレンタルサーバーも少ないのが現状。そこで、今回は日本語ファイル名を Web サイトで取り扱う注意と日本語が扱えるレンタルサーバーと環境をちょっとだけ検証してみました。

WordPress や concrete5 などの CMS でも日本語ファイル名をアップロードすると、日本語ファイル名から英数字の乱数に変換されたものがサーバーに保存されてしまいます。

日本語ファイル名の問題に関しては、 concrete5 CMS でも 5年間、ずっと悩み続けており、最近になってやっと日本語ファイル名の情報を concrete5 CMS にファイルぞ属性情報として登録できるようには実装することが出来ました。しかし、日本語名ファイルとしてダウンロードするのは実現できていません。シンプルな問題では無いからです。

結論から言うと、日本語ファイル名をそのままにしてサーバー上に保存する最適な方法は 2014年11月時点では存在していません。それは、Webサーバーやブラウザの文字コードの互換性に問題があり、サーバー側、ブラウザ側、個々の対応が必要だからです。

反対に言うと、使用する Web サーバーと、使用するPCの種類とブラウザの種類が特定し、対策を取っていれば、日本語ファイル名が使用可能です。ただしそれを行うにはたくさんのテストと検証が必要になるため、WordPress を含めて実現できていません。

 

日本語ファイルを Web サーバー上扱う上での問題点

日本語ファイルを Web サイトでやりとりしていく問題点は2つあります。

  • Web サーバーが対応しているか
  • 使用ブラウザが対応しているか

 

Web サーバーが対応しているか

ざっくり言うと、Web サーバーが UTF8 に対応したサーバーである必要があります。

ファイルをアプロードした際に日本語のファイル名のファイルをきちんと保存できるか否かです。

Web サーバーの対応とは、サーバーOS自体の文字コード、Webサーバーの文字コード設定です。

日本語は現在主に3種類の文字コードが使われています。Windows系のShift_JIS、UNIX 系の EUC_JP、そしてスタンダーをを目指した UTF8 です。

Webサーバーの OS (Linux, CentOS, FreeBSD 等) が、UTF8 に対応している必要があります。Windows OS サーバーの場合は、日本語ファイルをアップロードする際に、「CP932」という文字コードに変換させてやるという変換プログラムをPHPなどで書かなくてはいけません。(参考

そして、Webサーバーの OS が UTF8 を対応し、日本語ファイル名をアップロードできていても、Webサーバーの設定により、日本語ファイルをブラウザを通じてダウンロード出来ないサーバーもあります。

 

日本語ファイル名を対応しているレンタルサーバー

テスト日は 2014/11/4 です。「日本語ファイル名テスト.xls」という Excel と「「日本語ファイル名テスト.docx」Wordファイルをアップロードし、Mac OS X Merverics の Google Chrome Version 38 より日本語ファイル名としてダウンロードできるかテストしました。

  • OKなレンタルサーバー
    • さくらインターネット スタンダード
    • CPIインターネット 共有サーバー
  • NGなレンタルサーバー
    • レオサーバー (Internal Server Error)
    • ロリポップ ロリポプラン & チカッパプラン (404 エラー)

 

使用ブラウザが日本語ファイル名ダウンロード対応しているか

ざっくり説明しますが、最新の PC や Mac OS X のブラウザでは UTF8 で処理しているのですが、特に古いパソコンのブラウザに言えるのですが、Windows 系であれば、日本語を Shift_JIS  として処理し、古いUNIX 系パソコンでは EUC_JP で処理しています。

これは、Webサーバーが UTF8 などのの日本語ファイル名でファイルダウンロードをサポートしていても、ブラウザ側で、UTF8 などの文字コードを変換できないために、ブラウザ側の日本語処理でアップロードやダウンロード時に文字化けを起こしてしまう可能性があります。

その場合、各ブラウザのバージョンや使用PCの種類を判別して、その環境にあった文字コードにファイル名予め変換させてやるプログラムの開発が必要となります。そうなると検証作業に「ブラウザの数 x PC/Mac/Linuxの各バージョン」分の検証が必要です。全ユーザーの80%ぐらいをカバーしようと思うと、50通り以上のパターンでのプログラムの開発が必要となる可能性があります。

 

日本語ファイル名ダウンロードに対応しているブラウザ

その中で簡単では有りますが、日本語ファイル名のダウンロードをサポートしているか、さくらインターネットのサーバーに日本語ファイル名をあげて、正常にダウンロードできるか簡単にテストしてみました。テスト日は 2014/11/4 です。

「日本語ファイル名テスト.xls」という Excel と「「日本語ファイル名テスト.docx」Wordファイルをアップロードし、ダウンロードできるかテストしました。

  • 日本語ファイル、ダウンロードOKなブラウザと環境
    • Mac OS X 10.9 – Google Chrome 38
    • Mac OS X 10.9 – Firefox 28, 以降
    • Mac OS X Safari 7.1
    • Windows 7 – IE9
    • Windows 7 – IE10
  • 日本語ファイル、ダウンロードNGなブラウザと環境
    • Windows XP – IE6
    • Windows XP – IE7
    • Windows XP – IE8
    • Windows XP – Firefox

 

中間報告:やっぱ日本語ファイルを Web サイトで使うのは難しい

ちょっとこれ以上は時間を費やせないので、これ以上の検証を希望される方は、コンクリートファイブジャパン株式会社までお問合せください。有償になりますが、検証が可能です。個別のサーバーと使用するブラウザを限定することができれば WordPress や concrete5 で日本語ファイル名を使うための検証などをサポートすることが可能です。カスタム仕様となってしまうためにこのような対応となってしまいます。

 

Gmail とかのWeb Email サービスはすごいことしてるのね

「あれー。Gmail とかは、日本語ファイル名のファイル添付とか簡単にできるんだけど」と思われる方はいらっしゃるかもしれません。

みなさん、Google さんは、たくさんのプログラマさんが働いております。実質億単位の予算をかけて、ブラウザ、PCなどの環境を100通り近くテストして、ユーザーにとってはすごくシームレスに日本語ファイル名をやりとりできるように、日々アップグレードやテストをしているんですね。