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を使用した場合はどうなりますか?エンコーディングを変更するにはどうすればよいですか?
Kotlin 1.3.40は、実験的共通 ByteArray.decodeToString
関数。
Utf8エンコーディングでエンコードされた文字列のバイトを含むByteArray
を受け取り、それをkotlin String
にデコードします。したがって、次のように使用できます。
String response = response.data.decodeToString()
この関数を使用するには、実験的なstdlib APIをオプトインする必要があることに注意してください。このオプトインを作成するためにサポートされている方法の詳細については、こちらをご覧ください。 https://kotlinlang.org/docs/reference/experimental.html