Souvent, lorsque vous traitez avec json et les réponses, vous souhaitez coder la chaîne en UTF-8 en Java.
String response = new String(response.data, UTF); // Java code
Pour Kotlin, comment cela se fait-il? J'ai converti ma Java et le résultat était
String response = String(response.data, UTF) // kotlin code
Mais cela entraîne une erreur, car je pense que la méthode Kotlin String () est différente de ce que je fais en Java. Est-ce aussi simple que d'utiliser toString ()?
String response = response.data.toString() // kotlin code
Comment le système sait-il utiliser UTF-8, ou est-ce juste la valeur par défaut? C'est juste hypothétique, mais si je voulais faire quelque chose avec un objet String et donc utiliser UTF-16? Comment puis-je changer l'encodage?
Kotlin 1.3.40 fournit un expérimental commun ByteArray.decodeToString
fonction.
Il prend un ByteArray
contenant des octets de chaîne encodés avec le codage utf8 et le décode en kotlin String
. Vous pouvez donc l'utiliser comme:
String response = response.data.decodeToString()
Notez que l'utilisation de cette fonction nécessite d'activer l'API expérimentale stdlib. Vous pouvez en savoir plus sur les moyens pris en charge pour faire cette option ici: https://kotlinlang.org/docs/reference/experimental.html