问题引入
当您看到我文章的时候,后来查到我的前端页面和后端页面的编码都是GBK,而jQuery ajax提交时默认进行了utf-8编码,。
在网上找了很多解决方案都觉得太复杂,比如以下这篇中的办法是出现得比较多的:
上文中提到了两种方法:
1:发送页面、接收页面均采用UTF-8编码。
2:发送页面在调用ajax post方法之前,将含有中文内容的input用encodeURIComponent编码一次,而接收页面则调用解码方法( 如:java.net.urldecoder.decode("接收到内容","utf-8") )
评价第一种方法:不现实,我全站都是用的asp编码
评价第二种方法:要修改一个jQuery函数进行前端编码,后端又解码回来,嫌麻烦。。。
解决思路
前端和服务端编码都是GBK是,jQuery默认进行了utf-8编码的提交,那我们就让它按照默认方式提交,在服务端端把收到的uft-8再数据转回GBK不就行了吗?
操作指南
前端html
前端ajax
后端asp
总结,这种解决办法的好处就在于,前端一定都不用动,后端用个函数转换一下就可以了,而且所有的页面都可以是GBK编码的