Not an ISO 8859-1 character 不存在 ISO 8859-1 编码的字符
package mypack;
import java.io.*; import java.util.*;
import javax.servlet.*;
import javax.servlet.http.*;
public class HelloWorldExample1 extends HttpServlet {
public void doGet(HttpServletRequest request,
HttpServletResponse response)
throws ServletException, IOException {
response.setContentType("text/html;charset=GBK");
// 第一种情况
PrintWriter out = response.getWriter();
out.println("------第一种情况输出中文正常------"+" <br>");
//第二种情况
ServletOutputStream out = response.getOutputStream();
out.println("------第二种情况输出中文报错但输出英文正常------"+" <br>");
}
}
上面的程序将出现错误:java.io.CharConversionException: Not an ISO 8859-1 character: 第,问题的原因在于:stream输出的二进制的流,没有对字符进行编码,stream只能够使用iso 8859-1编码的字符,writer输出的文本信息,是经过系统编码之后输出的。