FirefoxがXMLHttpRequestで文字化ける問題について

firefoxはAjaxでPOSTすると

Content-Type: application/x-www-form-urlencoded; charset=UTF-8

というヘッダーがつきますが、このcharset=UTF-8があることで他のブラウザと挙動が変わることがあります。

ServletのデフォルトエンコードがUTF-8なら問題ありませんが、
Tomcatとかだと「ISO-8859-1」だったりします。

そのためTomcatの場合はconnectorのところに設定を追加してやることで回避することが可能です。

    <Connector port="80" protocol="HTTP/1.1" 
               connectionTimeout="20000" 
               redirectPort="8443" URIEncoding="UTF-8" useBodyEncodingForURI="true" />

 

ただし、アプリケーション層の方ですでに色々対応していると
カオスなことになるので慎重に使わないといけないようです。