中文乱码问题 |
一、JSP页面显示乱码 |
对不同的WEB服务器和不同的JDK版本,处理结果就不一样。原因:服务器使用的编码方式不同和浏览器对不同的字符显示结果不同而导致的。解决办法:在JSP页面中指定编码方式(gb2312),即在页面的第一行加上:<%@ page contentType="text/html; charset=gb2312"%>,就可以消除乱码了。完整页面如下: |
<%@ page contentType="text/html; charset=gb2312"%> |
二、表单提交中文时出现乱码 |
如果submit.jsp提交英文字符能正确显示,如果提交中文时就会出现乱码。原因:浏览器默认使用UTF-8编码方式来发送请求,而UTF-8和GB2312编码方式表示字符时不一样,这样就出现了不能识别字符。解决办法:通过request.seCharacterEncoding("gb2312")对请求进行统一编码,就实现了中文的正常显示。修改后的process.jsp代码如下: |
<%@ page contentType="text/html; charset=gb2312"%> |
<% |
request.seCharacterEncoding("gb2312"); |
%> |
三、数据库连接出现乱码 |
只要涉及中文的地方全部是乱码,解决办法:在数据库的数据库URL中加上useUnicode=true&characterEncoding=GBK就OK了。 |
四、数据库的显示乱码 |
编码转换类,实现如下: |
public class Convert { |
public static String ISOtoGB(String iso){ |
String gb; |
try{ |
if(iso.equals("") || iso == null){ |
return ""; |
} |
else{ |
iso = iso.trim(); |
gb = new String(iso.getBytes("ISO-8859-1"),"GB2312"); |
return gb; |
} |
} |
catch(Exception e){ |
System.err.print("编码转换错误:"+e.getMessage()); |
return ""; |
} |
} |
} |
把它编译成class,就可以调用Convert类的静态方法ISOtoGB()来转换编码。 |
中文乱码问题
最新推荐文章于 2024-09-03 19:40:04 发布