为什么字符串“¿”被翻译成“¿”调用.getBytes()时
-
05-07-2019 - |
题
当写字符串“¿”时使用
System.out.println(new String("¿".getBytes("UTF-8")));
¿写的不是¿。
为什么?我们如何解决它?
解决方案
您不必使用UTF-16来解决此问题:
new String("¿".getBytes("UTF-8"), "UTF-8");
工作得很好。只要给 getBytes()
方法的编码与传递给String构造函数的编码相同,你应该没问题!
其他提示
您需要在String构造函数中指定Charset(请参阅 API docs )。
尝试:
System.out.println(new String("¿".getBytes("UTF-8"), "UTF-8"));
在将字符串转换为字节时以及将字节转换回字符串时,您需要指定编码。
听起来系统控制台不是UTF-8
不隶属于 StackOverflow