web-dev-qa-db-ja.com

Kotlinで文字列をUTF-8にエンコードする

Jsonと応答を処理するときに、Javaで文字列をUTF-8にエンコードすることがよくあります。

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

Kotlinの場合、これはどのように行われますか?私はJavaクラスを変換し、結果は

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

しかし、これはエラーになります。KotlinString()メソッドは、Javaで実行しているものとは異なるためです。 toString()を使用するのと同じくらい簡単ですか?

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

システムはどのようにUTF-8を使用することを知っていますか、それとも単なるデフォルトですか?これは単なる仮説ですが、Stringオブジェクトを使用して何かを実行したいため、UTF-16を使用した場合はどうなりますか?エンコーディングを変更するにはどうすればよいですか?

3

Kotlin 1.3.40は、実験的共通 ByteArray.decodeToString 関数。

Utf8エンコーディングでエンコードされた文字列のバイトを含むByteArrayを受け取り、それをkotlin Stringにデコードします。したがって、次のように使用できます。

String response = response.data.decodeToString()

この関数を使用するには、実験的なstdlib APIをオプトインする必要があることに注意してください。このオプトインを作成するためにサポートされている方法の詳細については、こちらをご覧ください。 https://kotlinlang.org/docs/reference/experimental.html

1
Ilya