Maison >Java >javaDidacticiel >Combien d'octets une chaîne occupe-t-elle : un aperçu du codage Java et de l'utilisation des octets ?

Combien d'octets une chaîne occupe-t-elle : un aperçu du codage Java et de l'utilisation des octets ?

Mary-Kate Olsen
Mary-Kate Olsenoriginal
2024-10-27 05:08:30788parcourir

How Many Bytes Does a String Occupy: A Look at Java Encoding and Byte Usage?

Utilisation des octets dans le codage de chaîne

Le calcul du nombre d'octets dans une chaîne en Java nécessite de prendre en compte la méthode de codage utilisée. Les chaînes sont des séquences de caractères et le nombre d'octets requis pour les représenter dépend du schéma de codage utilisé pour les convertir en octets.

Détermination du nombre d'octets

Pour obtenir la taille d'une chaîne en octets, convertissez-la en tableau d'octets à l'aide de la méthode getBytes() et inspectez la taille du tableau :

<code class="java">String string = "Hello World";
byte[] utf8Bytes = string.getBytes("UTF-8");
int byteCount = utf8Bytes.length;</code>

Considérations sur l'encodage

Le Le schéma de codage affecte le nombre d'octets. Voici des exemples de différents encodages appliqués à la même chaîne :

<code class="java">byte[] utf8Bytes = string.getBytes("UTF-8");  // Each char as 1 byte
byte[] utf16Bytes = string.getBytes("UTF-16"); // Each char as 2 bytes
byte[] utf32Bytes = string.getBytes("UTF-32"); // Each char as 4 bytes
byte[] isoBytes = string.getBytes("ISO-8859-1");  // Each ASCII char as 1 byte
byte[] winBytes = string.getBytes("CP1252");   // Each ASCII char as 1 byte</code>

Caractères spéciaux et encodages multi-octets

Même les chaînes ASCII peuvent avoir un nombre d'octets variable en fonction de l'encodage. Par exemple, en UTF-8, certains caractères peuvent nécessiter plusieurs octets :

<code class="java">String interesting = "\uF93D\uF936\uF949\uF942"; // Chinese ideograms
byte[] utf8Bytes = interesting.getBytes("UTF-8");  // Each char as 3 bytes</code>

Encodage par défaut et spécification explicite

Si aucun argument d'encodage n'est fourni, le paramètre d'encodage de la plateforme le jeu de caractères par défaut est utilisé. Il est recommandé de toujours spécifier explicitement le jeu de caractères souhaité pour éviter des résultats inattendus.

Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!

Déclaration:
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn