当前位置: 首页 > 面试题库 >

将转义的Unicode字符转换回实际字符

周鸿光
2023-03-14
问题内容

我在Java中的字符串变量中具有以下值,该字符串变量具有如下编码的UTF-8字符

Dodd\u2013Frank

代替

Dodd–Frank

(假设我无法控制如何将此值分配给此字符串变量)

现在如何正确转换(编码)并将其存储回String变量中?

我发现以下代码

Charset.forName("UTF-8").encode(str);

但这会返回ByteBuffer,但我要String返回。

编辑:

一些其他信息。

当我使用System.out.println(str);我得到

Dodd\u2013Frank

我不确定什么是正确的术语(UTF-8或unicode)。


问题答案:

尝试

str = org.apache.commons.lang3.StringEscapeUtils.unescapeJava(str);

来自Apache Commons Lang



 类似资料:
  • 问题内容: 我需要将unicode字符串转换为具有以unicode编码的非ascii字符的字符串。例如,字符串“汉字Max”应显示为“ \ u6F22 \ u5B57 Max”。 我尝试过的 的不同组合 新的String(sourceString.getBytes(encoding1),encoding2) Apache StringEscapeUtils也会转义ascii字符,例如双引号 Str

  • 问题内容: 当我尝试使用“ unicode(head.contents [3])”获取标签的内容时,我得到类似于以下的输出:“ Christensen Sk \ xf6ld”。我希望转义序列作为字符串返回。如何在python中做? 问题答案: 假设Python将名称视为普通字符串,则首先必须将其解码为unicode: 实现此目的的另一种方法: 注意字符串前面的“ u”,表示它是未编码的。如果进行打

  • 我需要读入带有unicode转义的标准ascii样式字符串,并将其转换为包含utf8编码等价物的std::字符串。因此,例如“\u03a0”(包含6个字符的std::字符串)应转换为包含两个字符的std::字符串,分别为0xCE和0xA0,以原始二进制格式。 如果有一个简单的答案使用icu或boost我会很高兴,但我还没有找到一个。 (这类似于将Unicode字符串转换为转义ASCII字符串,但注

  • 问题内容: 在下面查看我的代码。我有一个包含Unicode字符代码的JSON字符串。我将其转换为Java对象,然后将其转换回JSON字符串。但是,您可以看到输入和输出JSON字符串不匹配。是否可以使用Gson将我的对象转换为原始JSON字符串?我想和一样。 问题答案: 不幸的是,Gson似乎不支持它。所有JSON输入/输出分别集中在Gson(从2.8.0开始)和。可以使用其私有方法读取Unicod

  • 问题内容: 在解析包含unicode转义序列的json字符串时,存在一个长期存在的错误。似乎需要修复该错误,这种错误可能很快就不会发生,因此我正在寻找一种在R中创建解决方法的方法,该方法在将序列提供给json解析器之前先取消序列化。 一些上下文:json数据始终是unicode,默认情况下使用,因此通常不需要转义。但是出于历史原因,json确实支持转义的unicode。因此json数据 和 是等效

  • 主要内容:转换在java中,文本是以Unicode格式内部存储的。 如果输入/输出格式不同,则需要转换。 转换 以下示例将展示将Unicode字符串转换为UTF8字节,以及将UTF8字节转为Unicode字节转换。 文件:IOTester.java - 执行上面示例代码,得到以下结果 -