2008-10-06 86 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")); 

您需要指定將編碼字符串轉換爲字節時和轉換字節回字符串時。