使用 Kotlin rest 模板解析正确的编码

Parse Correct encoding with Kotlin rest template

我想从 wiki api 获取标签。 我在 Spring 中使用 Kotlin 中的 rest 模板。 我也在 Java 中尝试了 OKHttp,但得到了相同的结果。 它在 Postman 中有效。

 val uri = "https://www.wikidata.org/w/api.php?action=wbgetentities&ids=Q1726&format=json&props=labels&languages=de|zh"

        val restTemplate = RestTemplate()
        val result = restTemplate.getForObject(uri, ByteArray::class.java)
        if (result != null)
            print(String(result, charset("UTF-8")))

输出是

{"entities":{"Q1726":{"type":"item","id":"Q1726","labels":{"zh":{"language":"zh","value":"\u6155\u5c3c\u9ed1"},"de":{"language":"de","value":"M\u00fcnchen"}}}},"success":1}[B@6a71619f

我希望它是“München”和“慕尼黑”

如何正确解析编码后的字符串?

This answer 成功了。

使用 org.apache.commons.text 中的 StringEscapeUtils,因为另一个已弃用。