【发布时间】:2008-10-06 20:34:38
【问题描述】:
当使用
写出字符串“¿”时System.out.println(new String("¿".getBytes("UTF-8")));
¿ 被写入,而不仅仅是 ¿。
为什么?我们该如何解决?
【问题讨论】:
标签: java utf-8 character-encoding
当使用
写出字符串“¿”时System.out.println(new String("¿".getBytes("UTF-8")));
¿ 被写入,而不仅仅是 ¿。
为什么?我们该如何解决?
【问题讨论】:
标签: java utf-8 character-encoding
您不必使用 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
【讨论】: