2010-02-15 12 views
1

對不起,在這裏提出基本問題。對不起。如何在Java中將字符序列轉換爲UTF-8?

我有一個序列在這樣的字符串以Unicode如下。

String unicode = "\u8BF7\u5728\u6B64\u5904\u8F93\u5165\u4EA7\u54C1\u7F16\u53F7\u6216\u540D\u79F0"; 

我怎樣才能將它轉換爲文本中國或UTF-8文本?

回答

3

字符串本身將始終是Unicode;我不知道你所說的「將它轉換爲文本中國」的意思,但使用UTF-8,你會用將其轉換爲二進制表示:

byte[] bytes = unicode.getBytes("UTF-8"); 

,或者您可以使用Charset - 使用Guava庫例如,你只需使用:

byte[] bytes = unicode.getBytes(Charsets.UTF_8); 

(這得到全面指定字符串的脆性,避免擔心醒目UnsupportedEncodingException。)

或者你可以聲明:

final static Charset UTF_8 = Charset.forName("UTF-8"); 

在你的班的頂部,以避免整個圖書館作爲治療字符串。

+0

約翰, 哪裏Charsets.UTF_8從何而來?它不在Java 1.6中。 – bmargulies

+1

@bmargulies:這是一個在番石榴(見http://guava-libraries.googlecode.com/svn/trunk/javadoc/com/google/common/base/Charsets.html) –

+0

「請在此處輸入產品編號或名稱「這是我在該Unicode輸入的瀏覽器上的預期文本。我怎樣才能做到這一點? – thndrkiss

0

你上面說你是輸出到瀏覽器?...如果您使用的是servlet或類似的有這樣做的各種方式,你可能需要在你的問題更具體一點,因爲你可以在http響應頭或html輸出中指定unicode/utf-8/utf-16,例如輸出在下面的標籤<head>元素中:

<meta http-equiv="Content-Type" content="text/html; charset=utf-8">

相關問題