2015-02-03 6 views
2

다음 질문에 대한 답을 찾을 수 없었습니다. 문자열로 시작하여 이진 표현으로 변환하십시오. 파이썬에서 어떻게 원래의 문자열을 되 찾을 수 있습니까?문자열의 바이너리 표현을 파이썬의 원래 문자열로 변환하는 방법은 무엇입니까?

예 :

a = 'hi us' 
b = ''.join(format(ord(c), '08b') for c in a) 

다음 b = 0110100001101001001000000111010101110011

가 지금은 다시 파이썬 2.x 또는 3.0에서 '미국 하와이'싶어 예를 들어,이 웹 사이트는 다음 작업을 수행합니다. http://string-functions.com/binary-string.aspx

Java에 대한 여러 답변을 보았지만 Python을 구현하지 못했습니다. 나는 또한 b.decode()을 시도했지만이 경우 사용해야하는 인코딩을 모릅니다.

+0

[여기를 확인] (http://stackoverflow.com/questions/17615414/how-to-convert-binary-string-to-normal-string-in-python3) – eMAD

+0

감사하지만, 그들은 '아스키' 내 질문에 관련이없는 디코딩하는 방법 – Quetzalcoatl

답변

6

사용이 코드 : 8의 덩어리

import binascii 
n = int('0110100001101001001000000111010101110011', 2) 
binascii.unhexlify('%x' % n) 
+0

훨씬 긴 문자열 어때? – njzk2

+0

은 동일하게 작동합니다. 이미 텍스트 단락으로 확인했습니다. –

+0

@user 12321, perfect! 정확히 내가 필요한 것. 고맙습니다. 놀랍게도 당신의 대답을 바로 – Quetzalcoatl

2
>>> print ''.join(chr(int(b[i:i+8], 2)) for i in range(0, len(b), 8)) 
'hi us' 

분할 b는, 기수 2를 사용 int로 구문 분석, 숯불 문자열로 결과 목록에 가입 변환합니다.