Java 字符集转换问题,求助
資深大佬 : wenlongde 3
命令行:
curl ‘http://192.168.1.1:9040/S041’ | iconv -f gbk -t utf8
可以得到正常的结果,符合预期
java 代码: new String(retStr.getBytes(Charset.forName(“GBK”)), Charset.forName(“UTF-8”)); 得到的是乱码,什么原因呢?
大佬有話說 (5)
命令行:
curl ‘http://192.168.1.1:9040/S041’ | iconv -f gbk -t utf8
可以得到正常的结果,符合预期
java 代码: new String(retStr.getBytes(Charset.forName(“GBK”)), Charset.forName(“UTF-8”)); 得到的是乱码,什么原因呢?
new String(str.getBytes(“UTF-8″),”UTF-8”);
注:只需要写目标编码,原始编码可忽略
可以参考: https://github.com/jinpang/Android/blob/master/Java%20%E6%AD%A3%E7%A1%AE%E7%9A%84%E5%81%9A%E5%AD%97%E7%AC%A6%E4%B8%B2%E7%BC%96%E7%A0%81%E8%BD%AC%E6%8D%A2
还有一种方式可以尝试下(UTF-8 是接收编码):
`new String(retStr.getBytes(Charset.forName(“UTF-8”)), Charset.forName(“GBK”));`
https://twitter.com/Linmiv/status/1336573220665737216