帮朋友搞得一段程序,是易语言环境的post,我要传递一串带有中文的JSON给node服务器.字符串如下
{"itemdata":{"nType":"1","nBaoYou":"0","szItemId":"536347062406","title":"秋冬新款女装韩版半高领毛 衣女加厚修身显瘦长袖套头针织衫打底衫","secondTitle":"","imgURL":"http://img4.tbcdn.cn/tfscom/i1/TB1OniJLXXXXXXzXpXXXXXXXXXX_!!0-item_pic.jpg","promotionTxt":"限时秒杀价","fOldPrice":"108","fThirdPrice":"0","fCommissionPer":"10.5","fCommission":"2.08","nTgCount":"0","nSellCount":"37","fPingFen":"0","nPingjiaCount":"5","szTgURL":"","szWebTgURL":"","szBlogTgURL":"","shortUrl":"","szDesc":"","nick":"艾伦圣玛旗舰店","coupon":""}}
然后,服务器接受到以后显示的是乱码,
然后用postman 测试发现只有raw json 才能正确发送和接收,
于是我上网查什么是raw ,查到是不进行任何数据编码传送,直接传递数据,
最后我想到,难道是语言环境的文本编码问题?
因为postman 是js 写的,所以Postman 没有语言环境编码的差异,
所以才会正常传送?如果是这样理论上发送的时候把发送环境的编码弄成和js 一样的编码应该也可以呀?
于是我想请问,如何做才能像js 一样只在发送端处理成为正确的json 就可以解决编码问题?
因为如果转码成utf8 的话,服务端还是要再解码一遍.作为一个技术,不想放弃最优方案.所以请问大神如何解决?

Copyright 2014-2025 https://www.php.cn/ All Rights Reserved | php.cn | 湘ICP备2023035733号
我也有这个问题,不知道楼主解决了没有,过滤器也加了,服务器的配置也写了,还是乱码、、
-----------------------------------华丽的分割线------------------------------
调了一上午我发现我的问题在哪里了
代码中通过以上方式将请求的内容转换为字符串
没有指定字符集,通过源码看到使用了默认的字符集,sun.nio.cs.StreamDecoder类如下方法
然后我本地环境的默认字符集是GBK,然后解码时导致乱码
可以通过设置JVM参数,-Dfile.encoding=UTF-8
强制将默认字符集调整为UTF-8,然后顺利的解决了我的问题
在Http Header中加上
Content-Type:"application/json;charset=UTF-8"。这貌似跟Python木有关系咯、 在后端用UTF-8编码就不会有乱码了啊。
如果是要在客户端解决,那就是:服务端什么编码,你客户端发送的时候就用什么编码发送
我觉得 post 的内容本身应该就是采用 UTF8 编码过的吧,然后你在服务器上看到中文乱码,我想会不会是你服务器本身就是英文环境,没有中文支持,所以才不支持中文显示。我是这么认为的。