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