使用 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,因为另一个已弃用。
我想从 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,因为另一个已弃用。