본문 바로가기
쉘스크립트애들

UnicodeDecodeError: 'ascii' codec can't decode byte

by 혜룐 2018. 7. 12.



 'ascii' codec can't encode character u'\u269c' in position 109: ordinal not in range(128)



python스크립트 print의 결과를 

쉘에서 리다이렉션으로 파일로 결과를 쓰는 경우 

 'ascii' codec can't encode character u'\u269c' in position 109: ordinal not in range(128)

와 같은 에러가 날때



예를 들어 파이썬스크립트를 아래처럼 실행

/home/env-server-board/bin/python elt.py -a get -k MTFkOWE3MjM3 > dump.log 

리다이렉트 하지 않은 경우에는 정상출력되는데

dump.log에  'ascii' codec can't encode character u'\u269c' in position 109: ordinal not in range(128) 출력..


파이썬스크립트에 codecs , sys 임포트


# -*- coding: utf-8 -*-

import codecs
import sys
UTF8Writer = codecs.getwriter('utf8')
sys.stdout = UTF8Writer(sys.stdout)