푸르미르

[Error]LookupError: unknown encoding: None 본문

SECURITY/VaccineServerSecurity

[Error]LookupError: unknown encoding: None

((•_•)) 2021. 10. 26. 23:54

shell_exec함수 실행 중 났던 오류다.

오류문을 살펴보니 sys.stdout.encoding에 의한 오류였다.

 

처음에는 str()로 감싸져 있는 형태가 아니였다. str로 감싸기 전의 오류는

TypeError: encode() argument 1 must be string, not None이였다.

참고로 encode()는 파라미터가 python2.7 기준으로 아래와 같다.

그렇다면 여기서 argument 1은 encoding파라미터라고 판단하였다. 그래서 sys.stdout.encoding를 만진거고

lookupError가 났다.

 

https://soooprmx.com/%ED%8C%8C%EC%9D%B4%EC%8D%AC%EC%97%90%EC%84%9C-%ED%95%9C%EA%B8%80%EC%9D%B4-%EA%B9%A8%EC%A7%84%EB%8B%A4%EA%B3%A0%EC%9A%94-%ED%8C%8C%EC%9D%B4%EC%8D%AC%EC%9D%98-%ED%95%9C%EA%B8%80-%EC%9E%85%EC%B6%9C/

 

파이썬의 한글 인코딩 · Wireframe · 파이썬에서 한글이 깨진다고요? - 파이썬의 한글 입출력과 인

파이썬2 + 윈도환경 + 한글사용. 이 세 가지 조합은 인코딩과 관련하여 믿을 수 없을만큼 이해하기 어렵고 복잡한 문제를 일으킨다. 파이썬3가 나온지가 언젠데 아직까지 파이썬2를 쓰라고? 미친

soooprmx.com

위 블로그를 참조하여 

기본적으로 명령줄에서 실행되는 파이썬 REPL의 인코딩은 터미널의 로케일을 따를테기 때문에

'CP949'로 되어 있을 확률이 크고, 실제로도 그렇게 출력값이 나오는 것을 보고,

코드에도 적용하여 아래와 같이 변경하였다.(errors의 파라미터에 해당하는 "replace"는 지웠다 걍)

 

굿