cari

Rumah  >  Soal Jawab  >  teks badan

python字符串用十六进制表示

我想将输入的字符串用十六进制表示,首先声明,并不是转换成十六进制的字符串,而是像下面的反过程:

>>> '\x61\x62\x63\x64'
'abcd'

我尝试了python3中的encode('UTF-8')等方法,但是都没有找到怎样可以达到我的目的,Python中是否能够完成这个功能,如果可以,怎样才能达到我的目的,希望各位大神能够指教。

PHPzPHPz2777 hari yang lalu876

membalas semua(3)saya akan balas

  • 巴扎黑

    巴扎黑2017-04-18 10:23:31

    >>> '\x61\x62\x63\x64' == 'abcd'
    True

    Tiada cara untuk mencetak 'x61x62x63x64' Jika anda hanya mahu menyemak nilai ascii yang sepadan dengan 'a', anda boleh menggunakan ord()

    .
    >>> ord('a')
    97
    >>> chr(97)
    'a'

    Saya tidak tahu sama ada ini boleh memenuhi keperluan anda

    >>> [hex(ord(x)) for x in 'abcd']
    ['0x61', '0x62', '0x63', '0x64']

    balas
    0
  • 阿神

    阿神2017-04-18 10:23:31

    python3

    >>> print(''.join((r'\x%2x'%ord(c)for c in 'abcd')))
    \x61\x62\x63\x64
    >>> print(''.join((r'\x%2x'%c for c in bytes('abcd','l1'))))
    \x61\x62\x63\x64
    >>> print(''.join((r'\x%2x'%c for c in b'abcd')))
    \x61\x62\x63\x64

    balas
    0
  • 高洛峰

    高洛峰2017-04-18 10:23:31

    Terdapat beberapa fungsi dalam perpustakaan binasci yang boleh melakukan ini

    import binascii
    print(binascii.b2a_hex(b'abcd'))
    # b'61626364'

    Atau tulis terus seperti ini dalam py3.5

    print(b'abcd'.hex())
    # 61626364

    balas
    0
  • Batalbalas