在 Kotlin 中正确表示 utf-8 字符串

Correctly represent utf-8 string in Kotlin

提问人:Don Miguel 提问时间:8/14/2023 更新时间:8/14/2023 访问量:26

问:

在 Android 中进行 Volley StringRequest 后,我得到了一个表示文件 url 的字符串。响应是:

"https:\/\/myserver.com\/relative\/file\/path\/\u0391\u0394...\u0395.pdf"

删除多余的反斜杠后,字符串显示为:

“https://myserver.com/relative/file/path/\u0391\u0394...\u0395.pdf”

utf-8 字符表示希腊字母。

我曾多次尝试正确阅读这些字符,但无济于事。我尝试过这样的事情:

mystring.toByteArray(Charsets.UTF_8).toString(Charsets.UTF_8)

和:

mystring.byteInputStream(Charsets.UTF_8).bufferedReader(Charsets.UTF_8).readText()

以上两者都生成相同的字符串,但字符未编码。相比之下,行:正确地将字符解释为“ΑΔ”。"\u0391\u0394".toByteArray(Charsets.UTF_8).toString(Charsets.UTF_8)

响应标头上的内容类型为:,这应该是正确的。application/json; charset=UTF-8

我应该怎么做才能正确解释该字符串中的字符?

安卓 Kotlin UTF-8 安卓排球

评论

0赞 Jorn 8/14/2023
这可能是客户端双重转义某些内容的问题。你所看到的那些字符串的字面意思是,例如。"path\\/\\u0391\\u0394"

答: 暂无答案