Comment puis-je vérifier si une chaîne est au format UTF-8 valide ?
Réponse
Trop de publicités?Seules les données d'octet peuvent être vérifiées. Si vous avez construit une chaîne, elle est déjà en UTF-16 en interne.
De plus, seuls les tableaux d'octets peuvent être codés en UTF-8.
Voici un cas courant de conversions UTF-8.
String myString = "\u0048\u0065\u006C\u006C\u006F World";
System.out.println(myString);
byte[] myBytes = null;
try
{
myBytes = myString.getBytes("UTF-8");
}
catch (UnsupportedEncodingException e)
{
e.printStackTrace();
System.exit(-1);
}
for (int i=0; i < myBytes.length; i++) {
System.out.println(myBytes[i]);
}
Si vous ne connaissez pas l'encodage de votre tableau d'octets, juniversalchardet est une bibliothèque pour vous aider à le détecter.