java 字符串 UTF16转UTF-8 的乱码问题? Java报错-问答-阿里云开发者社区-阿里云

开发者社区> 问答> 正文

java 字符串 UTF16转UTF-8 的乱码问题? Java报错

代码片段:```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 按照上面的代码 会出现乱码问题

展开
收起
DM。 2020-05-25 21:15:14 1869 0
1 条回答
写回答
取消 提交回答
  • 上面逻辑就有问题,用一个编码格式的bytes去换一个编码字符串,本来就是逻辑错误。进入代码层面的字符串都是utf-16。你只要按照编码格式解析出字符串,再去输出utf-8就行。重点是保证bytes不要多做转换,先正确解析出来,之后要换什么编码,都不是问题

    2020-05-25 21:30:19
    赞同 展开评论 打赏
问答分类:
问答地址:
相关产品:
问答排行榜
最热
最新
相关电子书
更多
Java工程师必读手册
立即下载
Java应用提速(速度与激情)
立即下载
Java单元测试实战
立即下载