您的位置:首页 > Web前端 > JavaScript

JSP中文乱码的解决方案

2007-09-17 21:19 239 查看
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编码发送到客户的浏览器上。
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: