java + tomcat, 为什么不乱码呢。

2015-01-17 13:33:26 +08:00
 hellogbk
win7 + tomcat7, 浏览器用的chrome
在js里用jquery ajax post一个name参数到servlet,name参数值为中文,
tomcat没做任何编码配置,程序中没有做编码转换, jsp与js是utf-8, 这样接到的那个name值却不是乱码的, 这是为什么。。。。
tomcat 不是默认编码iso-8859-1么? jquery会自动对提交的参数进行encodeURIComponent,是utf8编码,为什么没有造成乱码?

想不明白啊。。
2463 次点击
所在节点    程序员
6 条回复
hellogbk
2015-01-17 13:36:48 +08:00
蛋疼, 刚问完我就貌似找到答案了。。。
hellojinjie
2015-01-17 14:06:14 +08:00
如果是 get 的话,应该会乱码
zhangchioulin
2015-01-17 15:22:54 +08:00
有没有输入改编吗的代码?
hellogbk
2015-01-17 16:06:27 +08:00
@hellojinjie 是post
hellogbk
2015-01-17 16:08:07 +08:00
@zhangchioulin 没有, 查到一篇资料里面说, 如果请求头里面设置了contenttype而且contenttype里面有charset的话, tomcat会取到这个charset,用这个charset来解码参数,而不是用默认的iso8859了。。

jquery的ajax方法会自动添加
content-type=application/x-www-form-urlencoded;charset=utf-8
这个请求头,所以就没有造成乱码。。
lujiajing1126
2015-01-17 19:00:48 +08:00
apache的HTTP組件默認編碼是ISO-8859-1,但是他會從Headers拿Content-Type
我記得應該包名是org.apache.http吧
可以參考一下Google的Volley框架的response解析
作爲HTTP服務器肯定是完整實現Http協議的啦不用擔心

这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。

https://www.v2ex.com/t/162962

V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。

V2EX is a community of developers, designers and creative people.

© 2021 V2EX