如何在java中解码Unicode编码?

时间:2012-02-23 14:45:24

标签: java unicode

我在我的网站上搜索我们构建查询并发送请求和响应从供应商回来作为JSON。供应商抓取我们的网站并从我们的网站捕获数据并发送响应。在我们的设计中,我们使用GSON将JSON转换为java对象。我们在Meta中使用UTF-8作为字符集。

我有一种情况,根据请求,响应有时会对特殊字符进行Unicode编码。浏览器以奇怪的方式为特殊字符呈现此Unicode编码。我该如何解码这个Unicode编码?

例如,对于特殊字符'ndash',我在响应中看到它编码为'\ u2013'

1 个答案:

答案 0 :(得分:5)

阐明Unicode与字符编码之间的区别

<强>的Unicode

  • 是一个抽象概念,旨在识别所有字母(currently&gt; 110 000)。

字符编码

  • 定义字符如何通过字节序列来表示
  • 一个这样的编码是utf-8,它使用1-4个字节来表示Unicode字符

java String is 始终 UTF-16。因此,在构造String时,可以使用以下String构造函数

new String(byte[], encoding)

第二个参数应该是客户端发送字符时所处的编码。如果您没有明确定义编码,您将获得默认的系统编码,您可以使用Charset.defaultCharset();进行检查。

您可以在启动JVM时手动将默认编码设置为参数

-Dfile.encoding="utf-8"

虽然很少,但您也可以使用CharsetDecoder / CharsetEncoder