在 Kotlin 中将字符串编码为 UTF-8

新手上路,请多包涵

通常在处理 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 许可协议

阅读 2.4k
2 个回答

Kotlin 有 一个重载 ByteArray.toString 接受一个 Charset 。您需要做的就是使用它: array.toString(charset)

我在文档中找不到指定 ByteArray.toString() 做正确事情的部分,因为它在 Java _中没有_,并且该行为可能保留在 Kotlin 中。我猜它做错了事。我建议明确使用 toString(charset)

原文由 Louis Wasserman 发布,翻译遵循 CC BY-SA 4.0 许可协议

你可以试试这个 String(data, Charsets.UTF_8)

参考: https ://kotlinlang.org/api/latest/jvm/stdlib/kotlin.collections/to-string.html

原文由 Sagar Devanga 发布,翻译遵循 CC BY-SA 4.0 许可协议

撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题