[PYTHON] Conversion entre chaîne hexadécimale et chaîne

Python

String => chaîne hexadécimale

Le module binascii peut convertir des chaînes d'octets en chaînes hexadécimales. Dans le cas d'une chaîne de caractères Unicode, elle est encodée puis convertie.

Python2/Python3


import binascii
binascii.hexlify(b'Hello') # => b'48656c6c6f'
binascii.b2a_hex(b'Hello') # => b'48656c6c6f'
binascii.hexlify(u'Bonjour'.encode('utf-8')) # => b'e38193e38293e381abe381a1e381af'
binascii.b2a_hex(u'Bonjour'.encode('utf-8')) # => b'e38193e38293e381abe381a1e381af'

Vous pouvez également utiliser le module codecs.

Python2/Python3


import codecs
codecs.encode(b'Hello', 'hex_codec') # => b'48656c6c6f'
codecs.encode(u'Bonjour'.encode('utf-8'), 'hex_codec') # => b'e38193e38293e381abe381a1e381af'

En Python2, vous pouvez également convertir avec str.encode.

Python2 uniquement


'Hello'.encode('hex') # => '48656c6c6f'

Chaîne hexagonale => chaîne

Le module binascii peut convertir des chaînes hexadécimales en chaînes d'octets. Si vous voulez le rendre non codé, décodez le résultat.

Python2/Python3


import binascii
binascii.unhexlify(b'48656c6c6f') # => b'Hello'
binascii.a2b_hex(b'48656c6c6f')   # => b'Hello'
binascii.unhexlify(b'e38193e38293e381abe381a1e381af').decode('utf-8') # => 'Bonjour'
binascii.a2b_hex(b'e38193e38293e381abe381a1e381af').decode('utf-8') # => 'Bonjour'

Vous pouvez également utiliser le module codecs.

Python2/Python3


import codecs
codecs.decode(b'48656c6c6f', 'hex_codec') # => b'Hello'
codecs.decode(b'e38193e38293e381abe381a1e381af', 'hex_codec').decode('utf-8') # => 'Bonjour'

En Python2, vous pouvez également convertir avec str.decode.

Python2 uniquement


'48656c6c6f'.decode('hex') # => 'Hello'

Ruby

String => chaîne hexadécimale

Vous pouvez utiliser String # unpack pour convertir une chaîne en une chaîne hexadécimale.

'Hello'.unpack('H*') # => ["48656c6c6f"]
'Bonjour'.unpack('H*') # => ["e38193e38293e381abe381a1e381af"]

Chaîne hexagonale => chaîne

Vous pouvez utiliser Array # pack pour convertir une chaîne hexadécimale en chaîne. Modifiez les informations de code de caractère avec String # force_encoding si nécessaire.

['48656c6c6f'].pack('H*') # => "Hello"
['e38193e38293e381abe381a1e381af'].pack('H*').force_encoding('utf-8') # => "Bonjour"

Bash

String => chaîne hexadécimale

Vous pouvez convertir une chaîne en une chaîne hexadécimale avec xxd.

echo -n Hello | xxd -p # => 48656c6c6f
echo -n bonjour| xxd -p # => e38193e38293e381abe381a1e381af

Chaîne hexagonale => chaîne

Vous pouvez convertir une chaîne hexadécimale en chaîne avec xxd.

echo -n 48656c6c6f | xxd -r -p # => Hello
echo -n e38193e38293e381abe381a1e381af | xxd -r -p # =>Bonjour

MySQL

MySQL :: MySQL 5.6 Reference Manual :: 9.1.4 Hexagonal Literal

String => chaîne hexadécimale

SELECT HEX('Hello');
-- 48656C6C6F

SELECT HEX("Bonjour")
-- E38193E38293E381ABE381A1E381AF

Chaîne hexagonale => chaîne

SELECT x'48656C6C6F';
-- Hello

SELECT x'E38193E38293E381ABE381A1E381AF'
--Bonjour

Recommended Posts

Conversion entre chaîne hexadécimale et chaîne
Convertir une chaîne hexadécimale en binaire
Conversion entre unixtime et datetime
Indentation Python et format de chaîne
Date et heure ⇔ chaîne de caractères
Méthode de conversion efficace en chaîne d'octets
mappe de traitement de chaîne python et lambda
Conversion de la chaîne <-> date (date, datetime) en Python
Python UTC ⇔ JST, chaîne de caractères (UTC) ⇒ Mémo de conversion JST
Conversion de chaîne d'une liste contenant des nombres
Conversion entre mots singuliers et pluriels
[Introduction à AWS] Conversion de texte-voix et lecture ♪
Conversion de chaîne → valeur booléenne en Python Considération