java调用接口返回utf8,我用gbk格式的java文件获取的中文部分是乱码。 20

一个网络接口返回的是一个utf8编码格式的xml。我用utf8格式的java文件调用接口,获取的中文字符是完全没有问题的。但是我用gbk格式的java文件调用接口,并进行... 一个网络接口返回的是一个utf8编码格式的xml。我用utf8格式的java文件调用接口,获取的中文字符是完全没有问题的。但是我用gbk格式的java文件调用接口,并进行如下处理,中文字符部分正确,部分乱码,求解答!如果想要看源码,请参考百度语音识别接口中的java例子。
stringSrc = URLEncoder.encode(stringSrc , "GBK"); //stringSrc 就是调用网络接口返回的内容
stringSrc = URLDecoder.decode(stringSrc , "UTF-8");
System.out.println("stringSrc ="+stringSrc );//["百度语音提供????支持??],正确的内容是:[百度语音提供技术支持,"]
现在有点混乱了,按照最开始的想法是:接口返回utf8,但是转换成字符串时,因为文件是gbk,所以字符串就已经被gbk解码了一次。所以我逆过程回去,肯定是没问题的啊,因为结果确实含有正常中文,事实证明我的理解是对的,可是可是可是啊,怎么还有部分乱码了呢?
求高手帮忙消除困惑,先谢过大家了。
展开
 我来答
69746831
2016-12-14 · TA获得超过1415个赞
知道大有可为答主
回答量:2038
采纳率:72%
帮助的人:805万
展开全部
Java内部都是用Unicode编码

你说的utf8格式的java文件,是代码的编码方式,与内部存储无关
所以你用GBK编码,用UTF-8解码,是乱码很正常
追问
那是java内部的事,你有遇到过Unicode编码乱码吗?你再好好理解一下我的描述,跟你说的没有关系。
匿名用户
2019-04-13
展开全部
返回的是utf8编码格式中文,要先 uft8解码为字节流,再用 gbk 编码,后面才能用 gbk 解码
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
百毒不侵不毒百
2018-04-23
知道答主
回答量:8
采纳率:0%
帮助的人:5057
展开全部
请问解决了吗,我也在找这个解决方式,因为gbk是2个字节的,utf-8是3个字节,在过来的时候就发生了丢失数据,所以想着应该只能通过UTF-8去接受,避免它的默认转码,但是后面就不懂了
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 更多回答(1)
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式