科技行者

行者学院 转型私董会 科技行者专题报道 网红大战科技行者

知识库

知识库 安全导航

至顶网软件频道jsp的中文乱码问题的解决

jsp的中文乱码问题的解决

  • 扫一扫
    分享文章到微信

  • 扫一扫
    关注官方公众号
    至顶头条

jsp的中文乱码问题的解决

作者:js_steven 来源:赛迪网技术社区 2007年11月29日

关键字: 解决 中文乱码 JSP

  • 评论
  • 分享微博
  • 分享邮件
jsp的中文乱码问题的解决 ^!*g:Tn$k  
由于JSP是在运行时,由WEB容器进行动态编译的,如果我们没有指定JSP源文件的编码格式,则JSP编译器会获得服务器操作系统的file.encoding值来对JSP文件编译的,它在移植时最容易出问题。如在中文win2k中可以很好运行的jsp文件拿到英文linux中就不行,尽管客户端都是一样的。 那是因为容器在编译JSP文件时获取的操作系统的编码不同造成的(在中文wink中的file.encoding和在英文Linux中file.encoding是不同的,且英文Linux的file.encoding对中文不支持,所以编译出来的JSP类就会有问题)。网络上讨论的大多数是此类问题,多是因为JSP文件移植平台时不能正确显示的问题,对于这类问题,我们了解了JAVA中程序编码转换的原理,解决起来就容易多了。我们建议的解决办法如下: 1、我们要保证JSP向客户端输出时是采用中文编码方式输出的,即无论如何我们首先在我们的JSP源代编中加入以下一行: = Owdw?  
<%@page contentType="text/html; charset=gb2312"%> ~4+s6  
2、为了让JSP能正确获得传入的参数,我们在JSP源文件头加入下面一句: d~c }r  
<%request.setCharacterEncoding("GB2312");%> y4n/SH^  
3、为了让JSP编译器能正确地解码我们的含有中文字符的JSP文件,我们需要在JSP源文件中指定我们的JSP源文件的编码格式,具体来说,我们在JSP源文件头上加入下面的一句即可: BKfa6l,  
<%@page pageEncoding="GB2312"%>或<%@page pageEncoding="GBK"%> czqc8a?  
这是JSP规范2.0新增加的指令。 我们建议使用此方法来解JSP文件中的中文问题,下面的代码是一个正确做法的JSP文件的测试程序: _~0mOkFO  
//testchinese.jsp 5S`3;X%  
<%@page pageEncoding="GB2312"%> ,$!PK/  
<%@page contentType="text/html; charset=gb2312"%> yAU; Im  
<%request.setCharacterEncoding("GB2312");%> xLb2wW  
<% 5d &J% a  
String action = request.getParameter("ACTION"); J= #w!  
String name = ""; @,@\Xby  
String str = ""; Mkhn`Wa08  
if(action!=null && action.equals("SENT")) Ef19O[#  
{ JuBL>k4M  
name = request.getParameter("name"); ;K p#0'  
str = request.getParameter("str"); $#~^KYhiB  
} 9!UYwG \  
%> 9BE7Z-O  
<html> |(p*'#6/  
<head> -7<nC@0F  
J/m];3T}W  
<Script language="JavaScript"> tj35sy,  
function Submit() [li{07FF$  
{ TPoT]91.  
document.base.action = "?ACTION=SENT&str=传入的中文"; YUK}6qF  
document.base.method = "POST"; A2(Z;v-  
document.base.submit(); lXnG5 ;!m*  
} l] :MNs]Zb  
</Script> G$Ol_~:L>  
</head> jRw)sn|  
<body bgcolor="#FFFFFF" text="#000000" topmargin="5"> E>?o$`  
提交 YW1"J!2  
<% WzN%F.i  
if(action!=null && action.equals("SENT")) Q1JcX{ I  
{ =53Iz7"a  
out.println("你输入的字符为:"+name); {qBwf  
out.println("你通过URL传入的字符为:"+str); iiaF:l%Rvq  
} {Hg&m bt  
%> PrcB9 $]  
</body> j Mh; UE0  
</html>
查看本文来源
    • 评论
    • 分享微博
    • 分享邮件
    邮件订阅

    如果您非常迫切的想了解IT领域最新产品与技术信息,那么订阅至顶网技术邮件将是您的最佳途径之一。

    重磅专题
    往期文章
    最新文章