JavaWeb中的乱码问题,及解决方案

乱码的原因:
由于编码与解码的字符集不一致时,会出现乱码问题。
编码: 将字符转换为二进制的过程称之为编码
解码: 将二进制转换为字符的过程称之为解码
默认编码与解码:
服务器的默认编码与解码是一致,都是:ISO-8859-1

  • 浏览器默认编码:<meta charset="UTF-8">
  • 默认解码:GBK
    解决乱码:
    请求乱码(浏览器->服务器):
    get请求:
    因为get请求没有请求体,数据是在浏览器的url中传递的,所以我们要找到服务器的配置文件夹conf找到里面的service.xml,在端口号后面加一个属性URIEncoding=“UTF-8”
    例:<Connector connectionTimeout="20000" port="8080" URIEncoding="UTF-8"/>
    post请求:
    在servlet文件的doget()方法中用response调用setCharacterEncoding(“UTF-8”)方法。
    例:
request.setCharacterEncoding("UTF-8");

响应乱码(服务器->浏览器):
方法①:

response.setCharacterEncoding("GBK");
//当然啦,这种方法不常用。

方法②:
response.setContentType(“text/html;charset=UTF-8”);
总结:
其实为了避免乱码我们可以直接写上这两句话即可。当然啦也不要忘啦在conf/service.xml中将get请求改成UTF-8
即:

<Connector connectionTimeout="20000" port="8080" URIEncoding="UTF-8"/>
    request.setCharacterEncoding("UTF-8");
    response.setContentType("text/html;charset=UTF-8");
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值