乱码问题

乱码出现位置

  • 数据 “传递”过程中乱码。
  • 数据 “展示”过程乱码。
  • 数据 “保存”过程乱码。

数据 “保存”过程乱码 ##

  • 最终保存到数据库表中的时候,数据出现乱码
  • 导致数据库过程中的乱码包括以下两种情况:
    ** :在保存之前,数据本身就是乱码。
    ** :保存之前,不是乱码,由于本身数据库不支持简体中文,保存之后出现乱码。

数据 “展示”过程乱码 ##

  • 最终显示到网页上的数据出现中文乱码。
    **:设置响应的的内容类型,以及对应的编码方式。
response.setContentType("text/html;charset=UTF-8");

** :在页面加上:<%@ page contentType="text/html;charset=UTF-8" language="java" %> 或者<meta content="text/html;charset=UTF-8">


数据 “传输”过程乱码 ##

将数据从浏览器发送给服务器的时候,服务器接收的数据是乱码。(对应是ISO-8859-1编码)。

  • 万能方式,既能解决POST请求乱码,又能解决GET请求编码。先将服务器接收的数据采用ISO-8859-1解码,再给定一种支持中文的编码方式重新编码。
        String name = request.getParameter("name");
        //解码
        byte[] bytes = name.getBytes("ISO-8859-1");
        //编码
        name = new String(bytes,"UTF-8");
  • 只支持POST请求,因为只对请求体有效。
request.setCharacterEncoding("UTF-8");
  • 专门解决GET请求乱码,修改tomcat目录下conf文件夹下的server.xml
    加上URIEncoding="UTF-8"
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值