在处理json和响应时,您经常希望将字符串编码为java中的UTF-8.

String response = new String(response.data, UTF); // java code

For Kotlin, how is this done? I converted my Java class and the result was

String response = String(response.data, UTF) // kotlin code

But this results in an error, because I believe the Kotlin String() method is different than what I am doing in Java. Is it as simple as using the toString()?

String response = response.data.toString() // kotlin code

系统如何知道使用UTF-8,或者这只是默认值?这只是假设,但如果我想对String对象做些什么,并因此使用UTF-16呢?如何更改编码?

推荐答案

Kotlin 的ByteArray.toString分之an overload接受Charset分.你所需要做的就是使用它:array.toString(charset).

我在文档中找不到一个部分指定ByteArray.toString()做正确的事情,因为它在Java中是doesn't,而这种行为可能在Kotlin中保留下来.我猜它做错事了.我建议明确使用toString(charset).

Kotlin相关问答推荐

Spring Boot kotlin协程不能并行运行

在 Kotlin 中将 Array 转换为 IntArray 时丢失值

Ktor 在 Heroku 上的 CORS 问题,但在本地没有

Kotlin - 如何避免在密封类的 when() 语句中转换第二个变量

使用调度程序运行异步 Kotlin 代码

Rabin-Karp字符串匹配的实现(Rolling hash)

Kotlin .如何用从 1 到 90 的 5 个唯一数字填充列表中的每一行?

如何使用函数类型或 lambdas 作为 Kotlin 上下文接收器的类型?

测试协程和线程之间的差异,我在kotlin中使用线程时无法得到OOM错误

kotlin 如何决定 lambda 中的参数名称?

你怎么知道什么时候需要 yield()?

Kotlin:查找集合中最常见的元素

在 APK META-INF/library_release.kotlin_module 中复制的重复文件

如何有效地填充 Gradle Kotlin DSL 中的额外属性?

Android Studio 将 Java 转换为 Kotlin 错误无法推断此参数的类型

launch 仅从 Kotlin 1.3 开始可用,不能在 Kotlin 1.2 中使用

Jetpack Compose-居中文本

在android的默认浏览器 Select 列表中添加我的浏览器?

Kotlin 是否支持部分应用程序?

Kotlin for assertThat(foo, instanceOf(Bar.class))