使用
写出字符串“¿”时System.out.println(new String("¿".getBytes("UTF-8")));
¿而不仅仅是¿。
为什么?我们如何解决它?
答案 0 :(得分:5)
您不必使用UTF-16来解决此问题:
new String("¿".getBytes("UTF-8"), "UTF-8");
工作得很好。只要给getBytes()
方法的编码与传递给String构造函数的编码相同,你应该没问题!
答案 1 :(得分:2)
您需要在String构造函数中指定Charset(请参阅API docs)。
答案 2 :(得分:1)
尝试:
System.out.println(new String("¿".getBytes("UTF-8"), "UTF-8"));
在将字符串转换为字节时以及将字节转换回字符串时,您需要指定编码。
答案 3 :(得分:0)
听起来系统控制台不是UTF-8