ファイルアップロードの際、全角ファイル名部分が文字化けする現象にしばらく悩まされる。
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 件のコメント:
コメントを投稿