当使用写出字符串“¿”时
System.out.println(new String("¿".getBytes("UTF-8")));
¿ 是写而不只是 ¿。
为什么?我们如何解决它?
当使用写出字符串“¿”时
System.out.println(new String("¿".getBytes("UTF-8")));
¿ 是写而不只是 ¿。
为什么?我们如何解决它?
您不必使用 UTF-16 来解决这个问题:
new String("¿".getBytes("UTF-8"), "UTF-8");
工作得很好。只要赋予getBytes()
方法的编码与传递给 String 构造函数的编码相同,就可以了!
您需要在 String 构造函数中指定 Charset(请参阅API 文档)。
尝试:
System.out.println(new String("¿".getBytes("UTF-8"), "UTF-8"));
在将字符串转换为字节时以及将字节转换回字符串时,您都需要指定编码。
听起来系统控制台不是 UTF-8