首页 > 代码库 > web开发中的乱码问题

web开发中的乱码问题

乱码问题的根源:(以web程序为例子,eclipse来查看编码,设置UTF-8)

解决方案:所有文件或者字符串的编码方式一致

(1)查看web页面文件的编码方式:

      

(2)web页面的<head>写上

         <meta http-equiv="content-type" content="text/html; charset=UTF-8">

(3)特别注意web里面的<form>提交时submit,带有中文的字段会自动转码,以Tomcat为例,会转成“ISO8859-1”方式,所以在接受数据的时候还要继续转回你想要的编码方式

转码方式

public String changeToUTF8(String str) {
		if (str == null) {
			return "";
		}
		try {
			str = new String(str.getBytes("ISO8859-1"), "UTF-8");
		} catch (UnsupportedEncodingException e) {
			e.printStackTrace();
			return "";
		}
		return str;
	}

(4)同样的,你处理字符串的代码所在的文件也是要统一编码的




(5)最后,在你返回字符串的编码还是要统一

response.setCharacterEncoding("UTF-8");

(6)如果有数据库操作,建表时,里面的字段名要设置为你要的编码,例如




(7)数据库的默认编码方式还要注意一下(这种乱码方式不常见,可以忽略),输入show variables likes "char%";来查看




总结:乱码出现最多的是<form>提交的时候,往往很多人不知道它会自动转码,就会出现乱码问题,另外可以通过URL加密的方式来解决URL传递中文的时候的乱码问题,本人觉得麻烦,就不介绍了。还有在传递的过程中,可以用拦截器来捕获,来进行转码,这种方式还是觉得有点麻烦,具体去找JSP的书看看拦截器是怎样使用的。我介绍的方法已经可以解决我的乱码问题,而且觉得是比较简单的一种方式。