2008-10-06 68 views
2

当写入字符串“¿”外出时使用为什么叫.getBytes()

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

¿写的,而不是仅仅¿字符串“¿”得到翻译为“¿”。

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

回答

5

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

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

的作品就好了。只要给予getBytes()方法的编码与传递给String构造函数的编码相同,就应该没问题!

+0

这就是我所说的,加上我链接到API文档。 ;) – 2008-10-06 21:05:06

0

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

2

你需要在构造函数的字符串指定字符集(见API docs)。

1

尝试:

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

您需要指定将编码字符串转换为字节时和转换字节回字符串时。