Détails
Encoder une chaîne en UTF-8
J'ai une chaîne avec un caractère "ñ" ; et j'ai quelques problèmes avec elle. J'ai besoin d'encoder cette chaîne en encodage UTF-8. J'ai essayé de cette manière, mais cela ne fonctionne pas :
byte ptext[] = myString.getBytes();
String value = new String(ptext, "UTF-8");
Comment puis-je encoder cette chaîne en UTF-8 ?
176
3
Que diriez-vous d'utiliser
Les objets
String
en Java utilisent le codage UTF-16 qui ne peut pas être modifié.La seule chose qui peut avoir un encodage différent est un
byte[]
. Donc, si vous avez besoin de données UTF-8, vous avez besoin d'unbyte[]
. Si vous avez uneString
qui contient des données inattendues, alors le problème se situe à un endroit antérieur qui a incorrectement converti des données binaires enString
(c'est-à-dire qu'il utilisait le mauvais encodage).Utilisez
byte[] ptext = String.getBytes("UTF-8" ;);
au lieu degetBytes()
.getBytes()
utilise ce qu'on appelle le "codage par défaut" ;, qui peut ne pas être UTF-8.