[英]How to decode the Unicode encoding in java?
我的网站上有“搜索”,我们对查询进行了框架并发送了请求,并且“响应”从供应商处以JSON的形式返回。 供应商对我们的网站进行爬网并从我们的网站捕获数据并发送响应。 在我们的设计中,我们使用GSON将JSON转换为Java对象。 我们在元数据中使用UTF-8作为字符集。
我遇到的情况是,响应有时会根据请求对特殊字符进行Unicode编码。 浏览器以一种奇怪的方式呈现特殊字符的Unicode编码。 我应该如何解码这种Unicode编码?
例如,对于特殊字符“ ndash”,我在响应中看到它被编码为“ \\ u2013”
澄清Unicode和字符编码之间的区别
统一码
字符编码
Java字符串是 总是 UTF-16
。 因此,当您构造一个String时,可以使用以下String构造函数
new String(byte[], encoding)
第二个参数应该是客户端发送字符时字符使用的编码。 如果您不明确定义编码,则将获得默认的系统编码,可以使用Charset.defaultCharset();
进行检查Charset.defaultCharset();
。
您可以在启动JVM时手动将默认编码设置为参数
-Dfile.encoding="utf-8"
尽管很少需要,但您也可以使用CharsetDecoder / CharsetEncoder 。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.