thndrkiss
thndrkiss

Reputation: 4595

How to convert a sequence of character to UTF-8 in Java?

Sorry for asking basic questions here. Pardon me.

I have a sequence a string in this in unicode as follows.

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

How can I convert this to Chinese text or the UTF-8 text ?

Upvotes: 1

Views: 4042

Answers (2)

James B
James B

Reputation: 3750

You said above you are outputting to the browser?...If you're using a servlet or similar there are various ways of doing it, you may need to be a bit more specific in your question, because you can specify unicode/utf-8/utf-16 in the http response header or in the html output, e.g. outputting the following tags in the inside the <head> elements:

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

Upvotes: 0

Jon Skeet
Jon Skeet

Reputation: 1502686

The String itself will always be in Unicode; I'm not sure what you mean by "convert this to Chinese text" but to convert it to the binary representation using UTF-8 you'd use:

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

or you can use the Charset - using the Guava library for example, you'd just use:

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

(This gets round the brittleness of specifying a string, and avoids worrying about catching UnsupportedEncodingException.)

Or you can declare:

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

at the top of your class to avoid a whole library as a cure for the string.

Upvotes: 3

Related Questions