请教一下关于post编码的问题。
先说下需求:用的是jQuery的ajax去post一个表单。数据项都是构造好的。当数据是英文时,一切工作正常,表单也能正常提交,结果也符合预期。
但是,如果提交的数据中包含有中文,就会有乱码。
初步的判断是ajax的post是采用utf-8编码,而页面都是gbk编码。所以提交就是乱码。
于是我找了一个能编码gbk的函数进行转换,但是还是有问题。
正常提交的情况,如果字段是“你好。。。”抓包的结果会是%C4%E3%BA%C3%A1%A3%A1%A3%A1%A3
在本地js中调用函数转化后也是这个结果,但是一旦提交,就会被Utf-8编码成%25C4%25E3%25BA%25C3%25A1%25A3%25A1%25A3%25A1%25A3
显然,这样的提交不正确。
由于只能用js控制客户端(插件),所以那些二次编码,然后服务器端解码的方法就不可行了。去改变服务器页面的gbk编码为utf-8编码也是不可行。
大家一起讨论下。。