2

当使用写出字符串“¿”时

System.out.println(new String("¿".getBytes("UTF-8")));

¿ 是写而不只是 ¿。

为什么?我们如何解决它?

4

4 回答 4

5

您不必使用 UTF-16 来解决这个问题:

new String("¿".getBytes("UTF-8"), "UTF-8");

工作得很好。只要赋予getBytes()方法的编码与传递给 String 构造函数的编码相同,就可以了!

于 2008-10-06T20:55:52.050 回答
2

您需要在 String 构造函数中指定 Charset(请参阅API 文档)。

于 2008-10-06T20:41:07.120 回答
1

尝试:

System.out.println(new String("¿".getBytes("UTF-8"), "UTF-8"));

在将字符串转换为字节时以及将字节转换回字符串时,您都需要指定编码。

于 2008-10-06T20:56:48.447 回答
0

听起来系统控制台不是 UTF-8

于 2008-10-06T20:36:05.210 回答