在做一个很简单的问题,遇到这个问题,一开始的代码如下
HttpServletResponse resp=null;
out = resp.getOutputStream();
out.print("<script language='javascript'>alert('\u8bfe\u7a0b\u6570\u636e\u672a\u5bfc\u5165\uff0c\u8bf7\u8054\u7cfb\u7ba1\u7406\u5458\u5bfc\u5165\u3002');window.close();</script>");
解决的代码如下:
resp.setContentType("text/html;charset=UTF-8");
resp.getWriter().print(
"<script language='javascript'>alert('\u8bfe\u7a0b\u6570\u636e\u672a\u5bfc\u5165\uff0c\u8bf7\u8054\u7cfb\u7ba1\u7406\u5458\u5bfc\u5165\u3002');window.close();</script>"); // 换成这个就好了
resp.getWriter().close();
原因 :估计是stream输出的是二进制流 没有对字符进行编码 ,stream 只适用于 ISO 8859-1编码的字符,writer输出的是文本的信息, 是进行过系统编码后的。 猜的。
- 1楼xiaguangtest前天 11:51
- 猜的。 ....
- Re: Dracotianlong前天 16:55
- 回复xiaguangtestn哈哈,最后验证了下,确实是这样的。