TomcatのJavaオプション(文字コード)
ある友人からの連絡で、o3spaces というドキュメント管理システムで日本語のファイルが文字化けするので調べて欲しいと頼まれました。
実際に環境を構築して確認したところ、問題のファイル名は、ファイルのアップロード画面(JavaScript)では文字化けせずにアップロード後の表示で文字化けしていたので恐らくTomcat側のエンコードかJavaのエンコードだと推測して以下のことを試してみた。
Tomcatには、Tomcatの起動オプションで文字コードを指定する方法がいくつかあるようです。
この記事では、Microsoft Windows で "-Dfile.encoding=文字コード" を指定する方法に焦点を当てています。
1.まず、環境変数に下記のいずれかを設定する方法
(シェルでもバッチファイルでも問題はないかと思います。)
1) CATALINA_OPTS=-Dfile.encoding=UTF-8
2) JAVA_OPTS=-Dfile.encoding=UTF-8
ただ、Microsoft Windowsのサービス(exe)起動している場合は、設定できない場合があります。
2.レジストリキー(Microsoft Windowsのみ)
もうひとつの方法では、下記のレジストリキーを登録することで設定できるようです。確認したところ、動作していないようでした。
⇒ レジストリキー
\\HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\Tomcat4\Parameters
⇒ 値
JVM Option Number 0=-Dfile.encoding=UTF-8
JVM Option Count(REG_DWORD) =0 ※Option Number の数 0から開始
3.起動コマンド(シェル)のオプション指定
私の環境では、これにより文字コードを変更して動作することができました。
⇒ Microsoft Windows
SHELL> tomcat5w.exe //ES//サービス名