关闭

JSP中文乱码的解决方案

标签: jspservlet编译器浏览器jdkclass
830人阅读 评论(0) 收藏 举报

  1、我们要保证JSP向客户端输出时是采用中文编码方式输出的,即无论如何我们首先在我们的JSP源代编中加入以下一行:

  <%@page contentType=”text/html;charset=gb2312″%>

   2、为了让JSP能正确获得传入的参数,我们在JSP源文件头加入下面一句:

  <%request.setCharacterEncoding(”GB2312″);%>

  3、为了让JSP编译器能正确地解码我们的含有中文字符的JSP文件,我们需要在JSP源文件中指定我们的JSP源文件的编码格式,具体来说,

我们在JSP源文件头上加入下面的一句即可:

  <%@page pageEncoding=”GB2312″%>或<%@page pageEncoding=”GBK”%>

综上,JSP文件开头应该进行如下配置。
 <%@page contentType=”text/html;
  charset=gb2312″pageEncoding ="GB2312" %>
 <%request.setCharacterEncoding(”GB2312″);
 %>
进行如上的配置后,对JSP文件的编译和运行过程如下:WEB容器调用JSP编译器,JSP编译器调用JDK按照pageEncoding的编码格式把JSP文件编

译成临时的Servlet类,然后再把它编译成Unicode格式的CLASS类保存在文件中。如果Servlet在运行的过程中,需要接受从客户端传来的字符

如:表单输入的值和URL中传入的值,此时程序就会按照request.setCharacterEncoding(”GB2312″)设置的编码格式接受传来的值并转化为

Unicode格式来作为输入。Servlet运行后生成输出,输出的字符串是UNICODE格式的,紧接着,容器将Servlet运行产生的UNICODE格式的串(如

html语法,用户输出的串等)直接发送到客户端浏览器上并输出给用户,如果此时指定了发送时输出的编码格式,则按指定的编码格式输出到

浏览器上,如果没有指定,则默认按ISO-8859-1编码发送到客户的浏览器上。
 

0
0

查看评论
* 以上用户言论只代表其个人观点,不代表CSDN网站的观点或立场
    个人资料
    • 访问:71283次
    • 积分:1120
    • 等级:
    • 排名:千里之外
    • 原创:40篇
    • 转载:11篇
    • 译文:0篇
    • 评论:3条