web-dev-qa-db-fra.com

Encoder la chaîne en UTF-8 dans Kotlin

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?

3
portfoliobuilder

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

1
Ilya