출처 : https://stackoverflow.com/questions/3597480/how-to-make-python-3-print-utf8
Python 3버전대에서 그냥 print("한글") 처럼 쓸 경우 정상 출력이 되기 때문에 인코딩에 크게 문제가 없다고 생각했는데,
외부 프로그램에서 실행해서 시스템 내부로 출력하게 되는데 이때 인코딩 때문에 문제가 발생할 수 있다.
대표적으로 cron에서 스케쥴링 할 때이다.
나 같은 경우 Netty 서버에서 빌드 자동화 관련 파이썬 스크립트를 실행하다가 이 문제가 있음을 발견했다.
일단 가능한 해결책은
utf8stdout = open(1, 'w', encoding='utf-8', closefd=False) # fd 1 is stdout
print("한글", file=utf8stdout)
이와 같이 사용하면 된다. 인코딩이 필요할 때마다 이렇게 쓰던지, 아니면 print를 적당히 재정의해서 사용하면 될 거 같다.
'Python' 카테고리의 다른 글
Selenium 문서 (0) | 2018.04.17 |
---|---|
알고리즘 연습용 사이트 (0) | 2018.04.17 |
Openpyxl (0) | 2018.04.03 |
파이썬 설치 (0) | 2018.03.23 |