268 votes

Comment faire pour convertir des chaînes et des tableaux d’octets UTF8 en Java

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 ?

401voto

mcherm Points 5209

Convertir de String en Byte :

Convertir Byte en String :

Bien sûr, utilisez le nom de codage correct. Mes exemples utilisés « US-ASCII » et « UTF-8", les deux codages plus courantes.

97voto

Mike Leonhard Points 31

Voici une solution qui évite d’effectuer la recherche de jeu de caractères pour chaque conversion :

18voto

smink Points 39640
String original = "hello world";
byte[] utf8Bytes = original.getBytes("UTF8");

15voto

McDowell Points 62645

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.

12voto

paiego Points 1781

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é.

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X