2017-05-06 11 views
1
파이썬에서

에서 디코드 인쇄 가능한 따옴표 붙은 문자열, 나는이 문자열을 인쇄해야 Quoted-Printable encoding인코딩 문제 : 그래서 디코딩 할 <p><code>é</code></p> <p></p> 파이썬

mystring="=AC=E9" 

로 인코딩 된 문자열을 가지고 그것을 UTF-8로 인코딩 할 것입니다.

import quopri 
quopri.decodestring('=A3=E9') 

하지만 뭔가가 가능하다는 것을 알고 있습니다. 그렇다면 완전히 잃어 버렸습니다. 어떻게하면이 문자열을 디코드/인코딩하여 제대로 인쇄 할 수 있습니까?

답변

1

시도해보십시오.

import quopri 
mystring="=AC=E9" 
decoded_string=quopri.decodestring(mystring) 
print(decoded_string.decode('windows-1251')) 
+0

불행하게도, 내가 전에이 시도하지만 창-1251는 러시아어 언어를 인코딩하도록 설계되어 보인다. 귀하의 코드 블록을 실행할 때 인쇄 된 인쇄물이 인쇄됩니다. 이것은 그것이 보이는 것처럼 보이지 않습니다. 'é' –

1

좋아 얘들 아, 나는 이유를 정확히 알 수 없지만이 기능이 작동하는 것 같다 :

from email.parser import Parser 

def decode_email(msg_str): 
    p = Parser() 
    message = p.parsestr(msg_str) 
    decoded_message = '' 
    for part in message.walk(): 
     charset = part.get_content_charset() 
     if part.get_content_type() == 'text/plain': 
      part_str = part.get_payload(decode=1) 
      decoded_message += part_str.decode(charset) 
    return decoded_message