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输出的文本信息,是经过系统编码之后输出的。