如何在Java中将字符序列转换为UTF-8?

时间:2010-02-15 12:31:13

标签: java unicode

很抱歉在这里提出基本问题。请原谅我。

我在unicode中有一个字符串,如下所示。

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

如何将其转换为中文文本或UTF-8文本?

2 个答案:

答案 0 :(得分:3)

String本身将始终使用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");

在你班级的顶层,以避免整个库作为字符串的治疗方法。

答案 1 :(得分:0)

你上面说过你输出到浏览器了吗?...如果你正在使用servlet或类似的方法有各种各样的方法,你可能需要在你的问题中更具体一些,因为你可以指定http响应头或html输出中的unicode / utf-8 / utf-16,例如在<head>元素内输出以下标记:

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