|
马上注册,结交更多好友,享用更多功能,让你轻松玩转社区。
您需要 登录 才可以下载或查看,没有帐号?立即注册
x
大型的应用一般不会用这些框架(因为性能考虑);开发人员根据需要选择用一些框架,也可以不选用框架;不用框架并不代表要自己写框架;修改框架的可能性更小。js|办理|成绩|显现|页面 人人在JSP的开辟过程当中,常常呈现中文乱码的成绩,大概一至困扰着您,我如今把我在JSP开辟中碰到的中文乱码的成绩及办理举措写出来供人人参考。
1、JSP页面显现乱码
上面的显现页面(display.jsp)就呈现乱码:
<html>
<head>
<title>JSP的中文处置</title>
<metahttp-equiv="Content-Type"content="text/html;charset=gb2312">
</head>
<body>
<%
out.print("JSP的中文处置");
%>
</body>
</html>
对分歧的WEB服务器和分歧的JDK版本,处置了局就纷歧样。缘故原由:服务器利用的编码体例分歧和扫瞄器对分歧的字符显现了局分歧而招致的。办理举措:在JSP页面中指定编码体例(gb2312),即在页面的第一行加上:<%@pagecontentType="text/html;charset=gb2312"%>,就能够打消乱码了。完全页面以下:
<%@pagecontentType="text/html;charset=gb2312"%>
<html>
<head>
<title>JSP的中文处置</title>
<metahttp-equiv="Content-Type"content="text/html;charset=gb2312">
</head>
<body>
<%
out.print("JSP的中文处置");
%>
</body>
</html>
2、表单提交中文时呈现乱码
上面是一个提交页面(submit.jsp),代码以下:
<html>
<head>
<title>JSP的中文处置</title>
<metahttp-equiv="Content-Type"content="text/html;charset=gb2312">
</head>
<body>
<formname="form1"method="post"action="process.jsp">
<divalign="center">
<inputtype="text"name="name">
<inputtype="submit"name="Submit"value="Submit">
</div>
</form>
</body>
</html>
上面是处置页面(process.jsp)代码:
<%@pagecontentType="text/html;charset=gb2312"%>
<html>
<head>
<title>JSP的中文处置</title>
<metahttp-equiv="Content-Type"content="text/html;charset=gb2312">
</head>
<body>
<%=request.getParameter("name")%>
</body>
</html>
假如submit.jsp提交英笔墨符能准确显现,假如提交中文时就会呈现乱码。缘故原由:扫瞄器默许利用UTF-8编码体例来发送哀求,而UTF-8和GB2312编码体例暗示字符时纷歧样,如许就呈现了不克不及辨认字符。办理举措:经由过程request.seCharacterEncoding("gb2312")对哀求举行一致编码,就完成了中文的一般显现。修正后的process.jsp代码以下:
<%@pagecontentType="text/html;charset=gb2312"%>
<%
request.seCharacterEncoding("gb2312");
%>
<html>
<head>
<title>JSP的中文处置</title>
<metahttp-equiv="Content-Type"content="text/html;charset=gb2312">
</head>
<body>
<%=request.getParameter("name")%>
</body>
</html>
3、数据库毗连呈现乱码
只需触及中文的中央全体是乱码,办理举措:在数据库的数据库URL中加上useUnicode=true&characterEncoding=GBK就OK了。
4、数据库的显现乱码
在mysql4.1.0中,varchar范例,text范例就会呈现中文乱码,关于varchar范例把它设为binary属性就能够办理中文成绩,关于text范例就要用一个编码转换类来处置,完成以下:
publicclassConvert{
/**把ISO-8859-1码转换成GB2312
*/
publicstaticStringISOtoGB(Stringiso){
Stringgb;
try{
if(iso.equals("")||iso==null){
return"";
}
else{
iso=iso.trim();
gb=newString(iso.getBytes("ISO-8859-1"),"GB2312");
returngb;
}
}
catch(Exceptione){
System.err.print("编码转换毛病:"+e.getMessage());
return"";
}
}
}
把它编译成class,就能够挪用Convert类的静态办法ISOtoGB()来转换编码。
你总不能说你写框架吧,那无疑会加大工作量,现在大多企业采取的是折中的办法,就是改别人写好的框架,可要改框架,前提是你对这个框架足够的了解,这就更难了。 |
|