当前位置:编程学习 > JS >>

页面乱码解决4种方案

下边提供4种不同情况的乱码解决方案,基本上包括了web开发中出现乱码的不同情况。
主要针对java+MySQL(和PHP搭配之最佳组合)开发环境提出的乱码解决方案,只要作相应修改,可以用于不同语言环境的乱码问题解决。

一、jsp(SUN企业级应用的首选)页面显示乱码 
下面的显示页面(display.jsp(SUN企业级应用的首选))就出现乱码: 

 程序代码
<html> 
<head> 
<title>jsp(SUN企业级应用的首选)的中文处理</title> 
<meta http-equiv="Content-Type" content="text/html; charset=gb2312"> 
</head> 

<body> 
<% 
out.print("jsp(SUN企业级应用的首选)的中文处理"); 
%> 
</body> 
</html>
 
对不同的WEB服务器和不同的JDK版本,处理结果就不一样。原因:服务器使用的编码方式不同和浏览器对不同的字符显示结果不同而导致的。解决办法:在jsp(SUN企业级应用的首选)页面中指定编码方式(gb2312),即在页面的第一行加上:<%@ page contentType="text/html; charset=gb2312"%>,就可以消除乱码了。完整页面如下: 
<%@ page contentType="text/html; charset=gb2312"%> 
<html> 
<head> 
<title>jsp(SUN企业级应用的首选)的中文处理</title> 
<meta http-equiv="Content-Type" content="text/html; charset=gb2312"> 
</head> 

<body> 
<% 
out.print("jsp(SUN企业级应用的首选)的中文处理"); 
%> 
</body> 
</html> 

二、表单提交中文时出现乱码
下面是一个提交页面(submit.jsp(SUN企业级应用的首选)),代码如下: 

 程序代码
<html> 
<head> 
<title>jsp(SUN企业级应用的首选)的中文处理</title> 
<meta http-equiv="Content-Type" content="text/html; charset=gb2312"> 
</head> 

<body> 
<form name="form1" method="post" action="process.jsp(SUN企业级应用的首选)"> 
<div align="center"> 
<input type="text" name="name"> 
<input type="submit" name="Submit" value="Submit"> 
</div> 
</form> 
</body> 
</html>
 
下面是处理页面(process.jsp(SUN企业级应用的首选))代码: 

 程序代码
<%@ page contentType="text/html; charset=gb2312"%> 
<html> 
<head> 
<title>jsp(SUN企业级应用的首选)的中文处理</title> 
<meta http-equiv="Content-Type" content="text/html; charset=gb2312"> 
</head> 

<body> 
<%=request.getParameter("name")%> 
</body> 
</html>

如果submit.jsp(SUN企业级应用的首选)提交英文字符能正确显示,如果提交中文时就会出现乱码。原因:浏览器默认使用UTF-8编码方式来发送请求,而UTF-8和GB2312编码方式表示字符时不一样,这样就出现了不能识别字符。解决办法:通过request.seCharacterEncoding("gb2312")对请求进行统一编码,就实现了中文的正常显示。修改后的process.jsp(SUN企业级应用的首选)代码如下: 

 程序代码
<%@ page contentType="text/html; charset=gb2312"%> 
<% 
request.seCharacterEncoding("gb2312"); 
%> 
<html> 
<head> 
<title>jsp(SUN企业级应用的首选)的中文处理</title> 
<meta http-equiv="Content-Type" content="text/html; charset=gb2312"> 
</head> 

<body> 
<%=request.getParameter("name")%>
</body> 
</html> 


三、数据库连接出现乱码 
只要涉及中文的地方全部是乱码,解决办法:在数据库的数据库URL中加上useUnicode=true&characterEncoding=GBK就OK了。 

补充:Web开发 , Jsp ,
CopyRight © 2012 站长网 编程知识问答 www.zzzyk.com All Rights Reserved
部份技术文章来自网络,