Comprendre la signification du préfixe «b» dans les chaînes Python
Dans le code source Python, vous pouvez rencontrer des chaînes préfixées par un 'minuscule' b'. Ce «b» signifie une chaîne littérale bytes.
Octets vs Unicode
Dans Python 3, les chaînes sont principalement des objets Unicode. Les chaînes Unicode représentent des caractères de texte à l'aide de points de code provenant d'un large éventail de normes, notamment UTF-8, UTF-16 et UTF-32.
En revanche, les objets bytes en Python représentent des caractères binaires. données, y compris le texte codé. Ils contiennent une séquence d'entiers compris entre 0 et 255, représentant essentiellement des valeurs de données brutes.
Création d'objets octets
Pour créer un objet octets, utilisez le 'b ' préfixe avant une chaîne littérale :
<code class="python">b"abcdef"</code>
Vous pouvez également construire des objets bytes à partir de séquences d'entiers ou en codant des chaînes Unicode :
<code class="python">bytes([72, 101, 108, 108, 111]) bytesvalue = strvalue.encode('utf-8')</code>
Décodage et codage
Pour obtenir du texte Unicode à partir d'un objet bytes, utilisez la méthode decode() :
<code class="python">strvalue = bytesvalue.decode('utf-8')</code>
À l'inverse, pour convertir du texte Unicode en octets, utilisez la méthode encode() ou la Constructeur d'objet bytes :
<code class="python">bytesvalue = strvalue.encode('utf-8') bytesvalue = bytes(strvalue, 'utf-8')</code>
Gestion des erreurs
Les méthodes decode() et encode() acceptent un argument facultatif pour gérer les erreurs pendant le processus de conversion. Cet argument spécifie comment les caractères non valides ou les problèmes d'encodage doivent être gérés.
Compatibilité Python 2
Python 2 versions 2.6 et 2.7 prend également en charge le préfixe « b » pour les chaînes littérales. pour faciliter la compatibilité du code avec Python 3.
Immuabilité
Les objets Bytes sont immuables, ce qui signifie que leur contenu ne peut pas être modifié. Si vous avez besoin d'une représentation mutable de données binaires, utilisez plutôt un objet bytearray().
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!