Les objets chaîne Python vous permettent d'encoder / décoder des chaînes avec un codec spécifique, mais voici quelques-uns des codecs que vous ne connaissiez pas beaucoup.
base64
Comme beaucoup d'entre vous le savent, il encode / décode les chaînes en chaînes ** Base64 **.
>>> "hello".encode("base64")
'aGVsbG8=\n'
zip
Ce codec renvoie les mêmes octets que si la chaîne était compressée avec le module ** Zlib **.
>>> "hello".encode("zip")
'x\x9c\xcbH\xcd\xc9\xc9\x07\x00\x06,\x02\x15'
>>> import zlib
>>> zlib.compress("hello")
'x\x9c\xcbH\xcd\xc9\xc9\x07\x00\x06,\x02\x15' #le même
hex
Ce codec convertit une chaîne en un nombre hexadécimal à 2 chiffres par octet.
>>> "hello".encode("hex")
'68656c6c6f'
bz2
Ce codec utilise bz2 pour compresser les chaînes.
>>> "hello".encode("bz2")
'BZh91AY&SY\x191e=\x00\x00\x00\x81\x00\x02D\xa0\x00!\x9ah3M\x073\x8b\xb9"\x9c(H\x0c\x98\xb2\x9e\x80'
rot13
Ce codec est le [Caesar Code](http://en.wikipedia.org/wiki/%E3%82%B7%E3%83%BC%E3%82%B6%E3%83%BC%E6%9A% Cryptez la chaîne à l'aide de 97% E5% 8F% B7).
>>> "hello".encode("rot_13")
'uryyb'
uu
Ce codec utilise uuencode pour convertir les chaînes.
>>> print "hello".encode("uu")
begin 666 <data>
%:&5L;&\
end
idna
Ce codec est un code qui convertit la ** chaîne de caractères Unicode ** en une chaîne de caractères décrite au format ASCII sur l'application à partir du nom de domaine saisi en Kanji etc. spécifié dans la RFC3490.
>>> u"Bonjour".encode("idna")
'xn--mdk0c0b'
Il y a plus de codecs spéciaux en Python, mais je ne les utilise pas quotidiennement, donc je n'ai introduit que ces codecs. «zip» et «bz2» sont très pratiques car vous pouvez compresser des chaînes sans utiliser de modules.
Recommended Posts