Cet article vous apporte une explication des codecs du module de conversion en python (avec des exemples). Il a une certaine valeur de référence. Les amis dans le besoin peuvent s'y référer.
Lors de la conversion de l'encodage, il est généralement nécessaire d'utiliser l'Unicode comme encodage intermédiaire, c'est-à-dire de décoder d'abord les autres chaînes codées en Unicode. , puis encodez d'Unicode vers un autre encodage.
str1.decode('gb2312') #将gb2312编码的字符串转换成unicode编码 str2.encode('gb2312') #将unicode编码的字符串转换成gb2312编码
Remarque :
s='Chinese' Si elle est dans un fichier utf8, la chaîne est codée en utf8. Si elle est dans un fichier gb2312, son encodage est gb2312. Dans ce cas, pour effectuer une conversion d'encodage, vous devez d'abord utiliser la méthode decode pour le convertir en encodage Unicode, puis utiliser la méthode encode pour le convertir en d'autres encodages.
Lorsqu'aucune méthode d'encodage spécifique n'est spécifiée, le fichier de code est créé en utilisant l'encodage par défaut du système.
Si la chaîne est définie comme ceci : s=u'Chinese', alors l'encodage de la chaîne est spécifié comme Unicode, qui est l'encodage interne de Python, quel que soit l'encodage du fichier de code lui-même. Il vous suffit d'utiliser directement la méthode encode pour la convertir au codage spécifié
Si une chaîne est déjà unicode, une erreur se produira lors du décodage, il est donc généralement nécessaire de déterminer si la méthode de codage est unicode isinstance(s , unicode ) # Utilisé pour déterminer s'il s'agit d'unicode
(1) Pour le bloc-notes que nous utilisons souvent, "Fichier" -> vous pouvez voir la méthode d'encodage actuelle.
(2) Ouvrez-le avec notepad++, cliquez sur "Barre de menu" -> "Format" pour l'afficher.
(3) UltraEdit :
Le format d'encodage du texte avec différents encodages est défini en fonction des deux premiers octets du texte. La définition est la suivante :
ANSI : Aucune définition de format ; 🎜> Unicode : les deux premiers octets sont FFFE ;
Unicode big endian : les deux premiers octets sont FEFF ;
UTF-8 : les deux premiers octets sont EFBB
De cette façon, vous pouvez transmettre les deux premiers ; octets Le format spécifique du fichier est déterminé.
Encodage original-> L'encodage de destination
import sys print(sys.maxunicode)
c = "风卷残云" print(type(c)) c = bytes(c,encoding='utf-8') print(type(c)) print(c) b = codecs.decode(c, "utf-8") #与c.decode()等效 print(type(b)) print(b) print(c.decode())
<class 'str'> <class 'bytes'> b'\xe9\xa3\x8e\xe5\x8d\xb7\xe6\xae\x8b\xe4\xba\x91' <class 'str'> 风卷残云 风卷残云
import codecs a = "我爱你" # 创建utf-8编码器 look = codecs.lookup('utf-8') type(a) a = bytes(a,encoding='utf-8') b = look.decode(a) print(b)
('我爱你', 9)
f = codecs.open(filepath, 'r', 'utf8')
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!