Java est capable de stocker TOUS les textes Unicode valides. Il utilise UTF-16 en interne.
Si vous configurez correctement le chemin de données complet, tout le texte sera conservé. Vous devez vous assurer :
- La chaîne correcte atteint Java (dans le cas d'applications Web, l'encodage des caractères du formulaire soumis).
- Java sait qu'il devrait parler à la base de données en UTF-8 et la base de données sait qu'elle devrait attendre UTF-8 via la connexion. Vous vous en assurez lors de la configuration de la connexion à la base de données.
- Les données sont stockées au format UTF-8 dans la base de données.
Notez que [la documentation pour MySQL] affirme UTF-8 est incapable de stocker des caractères en dehors du plan multilingue de base (tous les caractères "normaux" se trouvent dans BMP). UTF-8 lui-même est parfaitement capable de stocker tous les caractères Unicode et la base de données devrait également pouvoir encoder ces caractères.
Java lui-même est correct - rappelez-vous simplement que certains caractères Unicode rares sont en fait deux caractères (appelés paire de substitution ) en Java.