通常在处理 json 和响应时,你想在 java 中将 String 编码为 UTF-8。
String response = new String(response.data, UTF); // java code
对于 Kotlin,这是怎么做到的?我转换了我的 Java 类,结果是
String response = String(response.data, UTF) // kotlin code
但这会导致错误,因为我相信 Kotlin String() 方法与我在 Java 中所做的不同。它像使用 toString() 一样简单吗?
String response = response.data.toString() // kotlin code
系统如何知道使用 UTF-8,或者这只是默认值?这只是假设,但如果我想对 String 对象做一些事情并因此使用 UTF-16 怎么办?如何更改编码?
原文由 portfoliobuilder 发布,翻译遵循 CC BY-SA 4.0 许可协议
Kotlin 有 一个重载
ByteArray.toString
接受一个Charset
。您需要做的就是使用它:array.toString(charset)
。我在文档中找不到指定
ByteArray.toString()
做正确事情的部分,因为它在 Java _中没有_,并且该行为可能保留在 Kotlin 中。我猜它做错了事。我建议明确使用toString(charset)
。