Qu'est-ce que Kotlin Charset ?
C’est l’ensemble des règles qui transforment des octets en texte et inversement.
Kotlin délègue à la JVM: java.nio.charset.Charset,
CharsetEncoder/CharsetDecoder.
Voici les éléments essentiels à connaître autour des Charset en Kotlin :
1 Jeux de caractères courants
Ceux que vous croiserez le plus sur JVM/Android :
2 API de la JVM utilisées en Kotlin
Interfaces et utilitaires pour encoder/décoder correctement :
3 Spécificités Unicode et normalisation
Points clés pour éviter les surprises et comparer des chaînes :
4 BOM et considérations techniques
Détails qui perturbent souvent les lectures/écritures :
Problèmes classiques
Fichiers lus/écrits sans charset explicite
Décodage via charset par défaut de la plateforme, différent en CI ou prod.
Tests unitaires qui échouent
Deux chaînes semblent identiques, mais proviennent d’encodages différents (�, diacritiques combinés).
toByteArray() ou String(bytes) sans charset
Utilise le charset par défaut; “ça marche chez moi” mais pas sur un autre OS.
Regex/parseurs perturbés
Caractères substitués, BOM en tête, formes Unicode différentes cassent les traitements.
Exemple de problème courant :
Symptômes qui doivent vous alerter
🚨 Signaux d'alarme
Comment les détecter
✨ Solution recommandée : Clean ASCII
Clean ASCII met en évidence les caractères non-ASCII, NBSP, ZWSP et BOM qui brouillent l’encodage. Idéal pour repérer rapidement les séquences problématiques avant de corriger le charset dans votre code Kotlin.
✅ Détection automatique
BOM, NBSP, ZWSP, caractères de contrôle, diacritiques isolés
📊 Analyse complète
Positions, points de code Unicode, indices pour choisir l’encodage
🧹 Nettoyage automatique
Remplacement sûr vers ASCII/UTF-8 lorsque pertinent
💾 Export propre
Télécharger un texte nettoyé prêt pour vos I/O Kotlin
Autres méthodes de détection
Affichage dans l'éditeur
En ligne de commande (Unix)
En code
Kotlin
val hex = bytes.joinToString(" ") { "%02x".format(it) }
val roundTrip = String(bytes, Charsets.UTF_8)
Java
String s = new String(b, java.nio.charset.StandardCharsets.UTF_8);
Excel / Google Sheets
Nettoyer et prévenir
🚀 Solution rapide avec Clean ASCII
Avant d’ajouter des couches de code, servez-vous de Clean ASCII pour révéler les caractères qui trahissent un mauvais encodage et nettoyer ce qui peut l’être en amont.
Méthodes techniques avancées
🔧 Normaliser
Charsets.UTF_8 dans String(...) et toByteArray(...)
.gitattributes et outils (dos2unix)
🧹 Filtrer
⚙️ Automatiser
compileOptions.encoding = "UTF-8", kotlin.compiler.execution.strategy
charset = utf-8, vérifications dans la CI
Checklist rapide
String(bytes, Charsets.UTF_8)
s == String(s.toByteArray(UTF_8), UTF_8)
Conclusion
Maîtriser Charset en Kotlin, c’est garantir des entrées/sorties fiables et des données lisibles partout. Un charset explicite, des fichiers cohérents et une détection précoce évitent les surprises coûteuses.
Précisez systématiquement l’encodage, contrôlez vos flux et surveillez les BOM: vous éliminez l’essentiel des bugs d’encodage.
Diagnostiquez vos soucis de charset Kotlin
Utilisez notre outil pour mettre en évidence les caractères suspects, BOM et séquences problématiques avant vos traitements Kotlin.
Analyser mon texte