Java è in grado di memorizzare TUTTO il testo Unicode valido. Utilizza UTF-16 internamente.
Se si configura correttamente l'intero percorso dati, tutto il testo verrà mantenuto. Devi assicurarti:
- La stringa corretta raggiunge Java (in caso di applicazioni web, codifica dei caratteri del modulo inviato).
- Java sa che dovrebbe parlare con il database in UTF-8 e il database sa che dovrebbe aspettarsi UTF-8 attraverso la connessione. Lo assicuri quando configuri la connessione al database.
- I dati vengono archiviati come UTF-8 nel database.
Nota che [la documentazione per MySQL] afferma UTF-8 non è in grado di memorizzare caratteri al di fuori del piano multilingue di base (tutti i caratteri "normali" si trovano all'interno di BMP). Lo stesso UTF-8 è perfettamente in grado di memorizzare tutti i caratteri Unicode e il database dovrebbe essere in grado di codificare anche questi caratteri.
Java stesso va bene - ricorda solo che alcuni rari caratteri Unicode sono in realtà due caratteri (chiamati coppia surrogata ) in Java.