解决了,java的话不用对body单独编码,可以对xml整体做个编码转换 prePayXml = new String(prePayXml.getBytes("UTF-8"), "ISO-8859-1");
微信支付请求获取预支付id的这一步,一旦参数body使用了中文,就会返回“body不是UTF8编码”的错误,参数明明已经使用了utf编码处理了... 后来再网上看到说要用UrlEncode处理中文,我试过确实是可以成功请求,可是支付成功返回的界面中,商品描述那一栏微信直接把UrlEncode编码的字符显示出来了。 我用的是 java 请问有解决的方法没有? 那个body 只要是中文 怎么转码,微信客服端就显示的是什么样的乱码,如果是中文字体不转码,就会报 <xml><return_code><![CDATA[FAIL]]></return_code><return_msg><![CDATA[body不是UTF8编码]]></return_msg></xml> 请问 大家都有什么解决方案没?
signParams.put("body", new String(body.getBytes("ISO-8859-1") ,"UTF-8")); // 商品主体 signParams.put("detail", new String(detail.getBytes("ISO-8859-1") ,"UTF-8")); // 商品描述 本人Java语言,MyEclipse UTF-8工程。
[quote=引用 12 楼 wwwmmmbird 的回复:] signParams.put("body", new String(body.getBytes("ISO-8859-1") ,"UTF-8")); // 商品主体 signParams.put("detail", new String(detail.getBytes("ISO-8859-1") ,"UTF-8")); // 商品描述 本人Java语言,MyEclipse UTF-8工程。
3,143
社区成员
3,831
社区内容
加载中
试试用AI创作助手写篇文章吧