2012-06-23 106 views
3

作爲標題,我如何將ASCII字符串轉換爲Java中的UTF-8字符串?如何在Java中將ASCII字符串轉換爲UTF-8字符串?

謝謝!

編輯:我的情況實際上是我用中文字符串讀取的,當我輸出它時,都是亂碼。我認爲這個問題可能在於編碼。那麼,如何正確地將字符串從亂碼轉換爲正確的語言設置字符?

+0

[如何將字符串轉換爲Java中的UTF8字節數組和字符串](http://stackoverflow.com/questions/88838/how-to-convert-strings-to-and-from-utf8-byte -array-in-java)和http://stackoverflow.com/questions/285228/how-to-convert-utf-8-to-us-ascii-in-java –

+0

你能擴展你需要什麼嗎?因爲在java中所有的字符串默認是UTF-16。 (感謝Jon Skeet糾正) – ilalex

+3

@ilya:不,所有字符串都是UTF-16代碼單元的序列。 –

回答

4

Java中不存在「ASCII字符串」或「UTF-8字符串」。當你有一個String對象時,它只是一系列的UTF-16代碼單元。沒有記錄它是否最初是從使用ASCII或UTF-8解釋字節的字節數組中解碼出來的。

還要注意的是UTF-8與ASCII向後兼容的,也就是說如果你有代表ASCII編碼的文本的字節任何有效的序列,這將被用來表示字節相同序列UTF-8中的相同文本。

2

Java中不存在ASCII字符串或UTF-8字符串。 ASCII和UTF-8是編碼 - 字節數組。

您不需要進行任何轉換即可從字符串的ASCII編碼轉換爲字符串的UTF-8編碼。任何有效的ASCII碼對於同一個字符串也是有效的UTF-8編碼。 (反之亦然)。