我有一个应用程序,可以通过JSON获得som Strings。
问题在于我认为他们是以ASCII格式发送的,文本确实应该是unicode。
例如,字符串的某些部分是“\ u00f6”,这是瑞典字母“ö”
例如瑞典语中的“buy”是“köpa”,我得到的字符串是“k \ u00f6pa”
在java中收回此字符串以将其转换为正确的表示形式后,对我来说有一种简单的方法吗?
也就是说,我想将“k \ u00f6pa”等字符串转换为“köpa”
感谢所有帮助!
答案 0 :(得分:1)
嗯,这很简单,只需使用JSON库即可。以杰克逊为例,你会:
final ObjectMapper mapper = new ObjectMapper();
final JsonNode node = mapper.readTree(your, source, here);
JsonNode
实际上是TextNode
;您可以将文本检索为:
node.textValue()
请注意,这不是" ASCII表示"字符串;只是碰巧JSON字符串可以包含像这样的UTF-16代码单元字符转义。
(尽管如此,你会丢失这个值的引号,但这可能是你所期望的)
答案 1 :(得分:0)
十六进制代码只是2个字节的整数,int
可以处理得很好 - 所以你可以使用Integer.parse(s, 16)
其中s
是没有{{1}的字符串}} 字首。然后,您只需将"\u"
缩小为int
即可保证适合。
抛出一些正则表达式(验证字符串并提取十六进制代码),你就完成了。
char