myeclipse编写的html页面乱码问题

今天用myeclipse写了一个简单的调用request对象方法的小demo,其中需要写个含多种格式表单的Html文件,写好测试时发现无论是在火狐还是360浏览器,显示的都是乱码,在网上找了很多解决办法,最简单的是把html页面里的charset=utf-8改为charset=gb2312,但是我的myeclipse里所有文件的编码都是utf-8,这就让我很疑惑为什么使用使用gb2312就没问题了?而且这种方法治标不治本,发布到国外肯定又乱码。还悲催的发现,获取到的数据只要是中文的就是乱码的,比如用户名。先记录下这个问题,找到原因再来补充。

补充1:对于获取到的数据只要是中文就乱码的问题,原因是request对象将字节流转成字符串时,查的是isso8859-1码表,而浏览器传给它的是浏览器被设置使用的码表(常是utf-8),所以自然会出错。解决办法是在servlet获取request对象保存的对象前加上:request.setCharacterEncording("UTF-8");//此法只适用于post方法。

如果是get方法,可以在拿到request对象后,再用isso8859-1编码查一遍,即:

byte data[]=username.getBytes("isso8859-1");//拿到浏览器传过来的原始字节流。

username=new String (data,"UTF-8");//此时再用UTF-8编译就没问题了。


       在网上还看到种说法:myeclipse建立html5的html页面会用html5的标准在meta头部直接用name参数名而且html1-4都是利用http-equiv来做参数名所以导致不支持html5标准的浏览器出现无法读取charset=utf-8而出现乱码。

不太理解,也不知道对不对。

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值