代码片段:```String s="hello你好";
String s1 = new String(s.getBytes("UTF-8"), "UTF-16");
String s2 = new String(s1.getBytes("UTF-16"), "UTF-8");
System.out.println(s2);
输出结果:��hello你��� 求解决方案
问题来源:rpc请求 返回的是utf-16编码的字符串 用的时候需要转成utf-8 按照上面的代码 会出现乱码问题
上面逻辑就有问题,用一个编码格式的bytes去换一个编码字符串,本来就是逻辑错误。进入代码层面的字符串都是utf-16。你只要按照编码格式解析出字符串,再去输出utf-8就行。重点是保证bytes不要多做转换,先正确解析出来,之后要换什么编码,都不是问题
版权声明:本文内容由阿里云实名注册用户自发贡献,版权归原作者所有,阿里云开发者社区不拥有其著作权,亦不承担相应法律责任。具体规则请查看《阿里云开发者社区用户服务协议》和《阿里云开发者社区知识产权保护指引》。如果您发现本社区中有涉嫌抄袭的内容,填写侵权投诉表单进行举报,一经查实,本社区将立刻删除涉嫌侵权内容。