En Java, j’ai une chaîne et je veux encoder comme un tableau d’octets (en UTF8, ou quelque autre codage). Tour à tour, j’ai un tableau d’octets (dans certains encodage connu) et je veux le convertir en une chaîne de Java. Comment faire ces conversions ?
Réponses
Trop de publicités?Vous pouvez convertir directement via le String(byte[], String) constructeur et getBytes(String) de la méthode. Java expose les jeux de caractères sont disponibles via le jeu de caractères de la classe. Le JDK de documentation des listes de codage pris en charge.
90% du temps, de telles conversions sont effectuées sur les cours d'eau, de sorte que vous souhaitez utiliser le Lecteur/Écrivain classes. Vous n'auriez pas de manière incrémentielle décoder à l'aide de la Chaîne de méthodes sur des octets arbitraires des ruisseaux - vous laissez-vous ouvrir à de bugs impliquant des caractères multioctets.
Mon implémentation de tomcat7 accepte les chaînes comme ISO-8859-1 ; Malgré le content-type de la requête HTTP. La solution suivante a fonctionné pour moi, en essayant d’interpréter correctement des caractères comme « é ».
En essayant d’interpréter la chaîne comme US-ASCII, les infos de l’octet n’a pas été correctement interprété.