Python에서 16 진수를 ASCII로 변환

Muhammad Waiz Khan 2023년1월30일
  1. decode()메소드를 사용하여 Python에서 Hex를 ASCII로 변환
  2. codecs.decode()메소드를 사용하여 Python에서 Hex를 ASCII로 변환
Python에서 16 진수를 ASCII로 변환

이 튜토리얼은 파이썬에서 16 진수 문자열을 ASCII 문자열로 변환하는 다양한 방법을 살펴볼 것입니다. 16 진수 형식 68656c6c6f로 작성된 문자열이 있고이를 ASCII 문자열로 변환한다고 가정합니다.이 문자열은 hello가됩니다. 왜냐하면 h는 ASCII 코드에서 68과 같기 때문입니다. 그리고 e64, l6c, o6f입니다.

다음 방법을 사용하여 16 진수 문자열을 Python에서 ASCII 문자열로 변환 할 수 있습니다.

decode()메소드를 사용하여 Python에서 Hex를 ASCII로 변환

Python 2의string.decode(encoding, error)메소드는 인코딩 된 문자열을 입력으로 취하고encoding인수에 지정된 인코딩 체계를 사용하여 디코딩합니다. error매개 변수는strict,ignorereplace가 될 수있는 오류의 경우에 사용할 오류 처리 체계를 지정합니다.

따라서 16 진 문자열을 ASCII 문자열로 변환하려면string.decode()메소드의encoding매개 변수를hex로 설정해야합니다. 아래 예제 코드는string.decode()메소드를 사용하여 Python 2에서 16 진수를 ASCII로 변환하는 방법을 보여줍니다.

string = "68656c6c6f"
string.decode("hex")

출력:

hello

Python 3에서bytearray.decode(encoding, error)메소드는 바이트 배열을 입력으로 취하고encoding인수에 지정된 인코딩 체계를 사용하여 디코딩합니다.

Python 3에서 문자열을 디코딩하려면 먼저 문자열을 바이트 배열로 변환 한 다음bytearray.decode()메서드를 사용하여 디코딩해야합니다. bytearray.fromhex(string)메소드를 사용하여 먼저 문자열을 바이트 배열로 변환 할 수 있습니다.

아래 예제 코드는 Python 3에서bytearray.decode()bytearray.fromhex(string)메서드를 사용하여 16 진수 문자열을 ASCII 문자열로 변환하는 방법을 보여줍니다.

string = "68656c6c6f"
byte_array = bytearray.fromhex(string)
byte_array.decode()

출력:

hello

codecs.decode()메소드를 사용하여 Python에서 Hex를 ASCII로 변환

codecs.decode(obj, encoding, error)메소드는decode()메소드와 유사합니다. 개체를 입력으로 사용하고encoding인수에 지정된 인코딩 체계를 사용하여 디코딩합니다. error인수는 오류 발생시 사용할 오류 처리 체계를 지정합니다.

Python 2에서codecs.decode()는 문자열을 출력으로 반환하고 Python 3에서는 바이트 배열을 반환합니다. 아래 예제 코드는codecs.decode()메소드를 사용하여 16 진 문자열을 ASCII로 변환하고str()메소드를 사용하여 리턴 된 바이트 배열을 문자열로 변환하는 방법을 보여줍니다.

import codecs

string = "68656c6c6f"
binary_str = codecs.decode(string, "hex")
print(str(binary_str, "utf-8"))

출력:

hello

관련 문장 - Python ASCII

관련 문장 - Python Hex