@
Strikeactor @
xmh51 @
AccIdent @
Sharuru @
hpeng @
SoloCompany 解决了,万万没想到 Bug 产生的原因是这样的:
用 Eclipse 新建 servlet 的时候, doGet()里自动生成了一句代码:
response.getWriter().append("Served at: ").append(request.getContextPath());
删掉这行代码,或者在这行代码前面加上 response.setCharacterEncoding("UTF-8");
乱码就解决了……
Response Headers 里面的 Content-Type 就变回了"text/html;charset=UTF-8"而不是之前诡异的"iso8859-1"
我在网上搜到
“设置服务器端的编码
response.setCharacterEncoding("utf-8 ”);
默认是 ISO-8859-1 ;该方法必须在 response.getWriter()之前进行设置”
之前 response.setCharacterEncoding("UTF-8");是加在 service()方法里的,没起作用,可能因为 doGet()方法调用在 service()方法之前,那时候已经调用了 response.getWriter()方法,编码变成了默认的 iso8859-1 。
为什么 response.setCharacterEncoding("utf-8 ”);必须在 response.getWriter()之前进行设置?