필자는 파이썬에서 헤더 필드에 이상한 바이트가 발생하는 메일 처리 소프트웨어를 작성하고 있습니다. 이 메일이 잘못된 것 같습니다. 메시지 자체는 us-ascii라고 주장하기 때문에 실제 인코딩은 없다고 생각하지만, UnicodeDecodeError
을 던지지 않고 원래의 코드를 근사하는 유니 코드 문자열을 얻고 싶습니다.일부 바이트의 문자 인코딩을 추측하려고하는 Python 라이브러리 함수가 있습니까?
그래서, 나는 str
과 선택적으로 힌트를 취하고, 그에게 가장 가까운 것을 unicode
으로 돌려주는 함수를 찾고있다. 물론 그 중 하나를 쓸 수는 있지만 그러한 기능이 존재한다면 저자는 아마 이것에 관해 가장 좋은 방법에 대해 조금 더 깊이 생각했을 것입니다.
파이썬의 디자인은 암시 적으로 표현하기를 좋아하며 표준 라이브러리는 텍스트 디코딩시 암시적인 마술을 피하도록 설계된 것으로 알고 있습니다. 나는 단지 명시 적으로 "앞서 가서 추측하다"라고 말하고 싶습니다.
끝에 'ascii'' case를 건너 뛰고'latin1'을 사용하면됩니다. 왜냐하면'latin1'은 에러없이 모든 256 바이트 값을 디코딩 할 것이기 때문입니다. –