python 2 코드를 python 3으로 마이그레이션하는 중인데 인코딩/디코딩에 문제가 있습니다. 먼저 다음과 같은 방식으로 변환해야 하는 여러 문장이 있습니다.
문자열 --> 16진수 문자열
이전에는 python 2에서 이와 같은 코드를 사용했는데 hex_message = message.encode("hex")
마이그레이션하기 전에 완벽하게 작동했습니다. 예를 들어, input->"Hello world", output ->"48656c6c6f20776f726c64"
. 그런 다음이 문제가 LookupError: 'hex' is not a text encoding; use codecs.encode() to handle arbitrary codecs
있습니다. 표현식을 이것으로 변경 hex_message = codecs.encode(message, 'hex')
했는데 이 출력이 나타납니다 b"48656c6c6f20776f726c64"
. 따라서 변경 사항이 많지는 않지만 문제는 바이트 개체가 아닌 여러 문자열이 있고 이를 조인해야 하므로 인코딩하고 싶지만 문자열로만 바이트 개체로 사용하지 않으려는 것입니다. 다른 기능이나 추가 기능으로 이전과 같이 가져오고 싶습니다.
해결책을 찾았습니다.
message = "Hello world".encode('utf-8')
그럼 hex_message = message.hex()
. python3에서 작동합니다.
이 기사는 인터넷에서 수집됩니다. 재 인쇄 할 때 출처를 알려주십시오.
침해가 발생한 경우 연락 주시기 바랍니다[email protected] 삭제
몇 마디 만하겠습니다