Javaee开发中的字符编码问题

1 篇文章 0 订阅
1 篇文章 0 订阅

最近做了一个jsp+servlet商城项目,印象最深刻的就是一个又一个的字符编码问题,就把所有遇到的编码问题总结出来,记录下来。
项目演示地址:blog.jiutucao.com:8080/shopping/index.html
Github地址:https://github.com/robotBing/shopping

  1. 数据库乱码
    数据库乱码有两种
  2. 程序dao层和数据库交互时中文传不进去
    解决办法:将数据库的配置文件里的编码改成utf-8,并以utf-8格式重新创建数据库(具体的操作网上到处都是,百度一下即可)
  3. 向数据库插入数据时数据库显示就是乱码
    解决办法:我遇到这个问题时因为批量插入数据,将insert语句分开,一条一条插入即可

  4. html文件在浏览器显示乱码
    解决办法:
    这个问题基本上都是在html文件里加上属性
    我做的比较彻底,
    1.右击文件->properities将text file encoding设置为utf-8
    2.右击工程->properities将text file encoding设置为utf-8
    3.servlet里的service()方法里,做的第一件事就是把请求和响应的字符编码设置为utf-8,添加代码:request.setCharacterEncoding("utf-8");

                response.setCharacterEncoding("utf-8");
    
  5. 表单里中文提交到servlet里的数据,用request.getparament()取出时乱码
    解决办法:这个是因为tomcat转发请求默认的是使用iso-8859-1格式
    1.修改tomcat的配置文件,将转发请求格式改成utf-8(我用的第二种方法,这个方案自行百度)
    1. request.getparament()取出参数后,进行转码
      代码:String name = request.getParameter("name");
      name = new String(name.getBytes("ISO-8859-1"), "UTF-8");

4.cookie数据使用时乱码,乱码带有%
解决办法:Cookie数据一般添加时都会进行加密操作,解密一下就好
加密代码:name = URLEncoder.encode(name, "utf-8");
解密代码:name = URLDecoder.decode(name, "utf-8");

总结:这个项目算是javaee的入门项目,还停留在jsp+servlet阶段,前后端还没有完全分离,但是对于理解servlet原理非常有帮助,这个项目完全搞懂了,学习框架的时候会轻松很多。做项目的时候遇到很多坑,对于这种mcv的项目,代码遇到问题时从界面一点一点往后台去查找,只要不是遇到那种玄学的问题,还是很容易找到根源的。

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值