UTF-8ですべてまとめて、AJAXからサーブレットを呼び出して、XMLで返して、日本語を化けないようにする方法メモメモ(ウィリアムのいたずらは、これでうまくいった)
<<AJAX(ブラウザで読む)ソース側>>
1.AJAXを書くHTML(ないしはJSP)を、UTF-8で書いて、
頭に、METAタグで、
<META http-equiv="Content-Type" content="text/html; charset=UTF-8">
(<>は、本当は半角)とする(JSPの場合はここ)
2.サーブレットを呼び出すとき、呼び出し引数をencodeURIComponentでエンコードする
(%16進数でエスケープ)
<<サーブレット側>>
3.request.getParameter()をする前に
request.setCharacterEncoding("utf-8");をしておく
→実際、やんないと、うまくいかなかった・・・
4.書き出すとき、
response.setContentType("text/xml; charset=utf-8");
をする。
5.なお、XMLで書き出す場合は、
"<?xml version='1.0' encoding='UTF-8' ?>"
と書き出される必要がある
(もし、XMLをDOMでなく、response.getWriter()をとって、print(println)
してるなら、上記のように書く)