2014年12月29日月曜日

tomcatを使うにあたって、eclipseの中では文字化けしないのに、startup.bat起動だと文字化け(windows)

ファイルアップロードの際、全角ファイル名部分が文字化けする現象にしばらく悩まされる。
Linuxでは問題なく、また、Windowsでもeclipseからtomcatで動かしている間は問題なかったのでしばらく気づかなかった。startup.batでtomcatを動かすと発生する不具合です。

server.xml web.xml コンテキスト設定等 文字コード関連の指定について
いろいろチェックするけれど、なかなか分からない。

ストリーム関連の文字コードについて、いろいろ調べた結果
原因は、アップロードを行うサーブレットの中にあることが判明。
ServletInputStream in = request.getInputStream();

in.readLine(b,0,bufsize)
というように、ストリームとしてデータを読み込み、そこから文字を取り出すため
str = new String(b,0,count-2);としていたが、これではだめらしく
str = new String(b,0,count-2,"UTF-8");としたら、うまくいった。


0 件のコメント:

コメントを投稿