令人头疼的乱码问题

本文深入探讨了Web系统中出现乱码的原因,并提供了解决方案,即确保从数据库到前端各环节编码一致。同时,文章还分析了JavaScript发送HTTP请求时的编码方式以及request对象在POST和GET请求中的不同表现。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

1,深入了解字符集和编码

 

http://www.javaeye.com/topic/97803

 

    为什么会乱码?
    乱码是个老问题,从上面我们知道,字符在保存时的编码格式如果和要显示的编码格式不一样的话,就会出现乱码问题。
我们的Web系统,从底层数据库编码、Web应用程序编码到HTML页面编码,如果有一项不一致的话,就会出现乱码。
所以,解决乱码问题说难也难说简单也简单,关键是让交互系统之间编码一致。

所以:要解决乱码问题,就是要让“存”时的编码和“取”时的编码一致!

 

2,Javascript发送http请求时的编码


    post请求:使用“utf-8”编码(是的,我验证过了的);

    get请求:(目前还不清楚)

 

3,request的setCharacterEncoding()方法只对post请求有效,对get请求无效!

 

    以下是setCharacterEncoding方法的说明:

    Overrides the name of the character encoding used in the body of this request. This method must be called prior to reading request parameters or reading input using getReader(). Otherwise, it has no effect.

    注意这个“body ”。同样,request的getCharacterEncoding 方法也只对post请求有效,在get请求时,其返回值是“null ”。

    post请求把参数对放在请求体 中,而get请求则是把参数对附加在URL后边,作为请求头的一部分发送出去。 setCharacterEncoding方法 getCharacterEncoding方法 只对请求体 起作用,故,这两个方法对GET请求无效,哈哈哈哈……

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值