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的书看看拦截器是怎样使用的。我介绍的方法已经可以解决我的乱码问题,而且觉得是比较简单的一种方式。

  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值