ServletResponse#getOutputStream で,文字化けになる件


さて,今年も新人が配属される季節になってきました!!
というわけで久しぶりにブログで答えてみます!!

あと、getOutputStreamを使うと文字化けの原因になるよ!

http://d.hatena.ne.jp/aTaGo/20100607/1275907563

setContentTypeメソッドで正しいcharsetを指定しても、その後でgetOutputStreamを呼ぶと文字化けするらしい。

http://d.hatena.ne.jp/sonodax/20100607/1275908653


うん,文字化けするよ!!
でも,それは想定どおりの挙動だよ!!
ちゃんと公式ドキュメントみると書いてあるよ!!

Returns a ServletOutputStream suitable for writing binary data in the response. The servlet container does not encode the binary data.

http://java.sun.com/j2ee/1.4/docs/api/javax/servlet/ServletResponse.html#getOutputStream()


バイナリデータを扱うときに使うやつだからサーブレットコンテナは encode しないよって事だね!!


と,いうわけで
id:sonodaxid:aTaGo をよろしくおねがいします><