java.io.CharConversionException: Not an ISO 8859-1 character

使用Ajax调用Action获取XML字符串,其中包含中文,使用如下代码输出:

ServletOutputStream out = response.getOutputStream();
request.setAttribute("xmlTree", tree);
out.print(tree);

在JDK1.5平台运行一切正常,在JDK1.6平台运行抛出异常:

严重: Servlet.service() for servlet action threw exception
java.io.CharConversionException: Not an ISO 8859-1 character: 全
at javax.servlet.ServletOutputStream.print(ServletOutputStream.java:89)
at com.xjgc.rsm.web.action.ProblemtypeAction.createTypeTree(ProblemtypeAction.java:282)
at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)


异常的大概意思是说非ISO-8859-1编码,确实,我使用的GBK。而且第一行就是

at javax.servlet.ServletOutputStream.print(ServletOutputStream.java:89)

问题可能出现在ServletOutputStream上,于是用PrintWriter替换了ServletOutputStream,运行正确,如:

PrintWriter pw = response.getWriter();
   pw.print(tree);

现在就OK了

你可能感兴趣的:(java,Ajax,Web,servlet,sun)