2012-03-12 23 views
1

我使用下面的代碼
號在UTF-8

String str="12345"; 
byte[] b=str.getBytes("UTF-8"); 

String str1=new String(b,"UTF-8"); 
System.out.println(str1); 


我得到以下結果

=♠4??o;◄EZZ▬▲] 

爲什麼不給原始字符串?

+0

它確實給了我「12345」...! – 2012-03-12 07:47:04

+4

這不是我從代碼中得到的輸出。它實際上工作得很好(我沒有看到爲什麼這應該輸出除'12345'之外的任何理由)。 – 2012-03-12 07:48:02

+0

看起來你的輸出有問題。我也測試了你的代碼,並且正確地打印了'12345'。 – DRCB 2012-03-12 07:49:00

回答

0

嘗試System.out.println("12345")。如果結果相同,則意味着您的系統編碼不合適。在這種情況下(如果您使用cmd)請嘗試chcp 65001並重試。另一個選擇是在運行ide之前嘗試設置系統屬性file.encoding = UTF-8。

+1

如果結果與問題中的代碼結果**不相同,那麼Java安裝會出現嚴重錯誤。 – 2012-03-12 08:10:57