2013년 12월 18일 수요일

python encoding 변환시 지원되지 않는 character 무시하기

encoding을 변환하고자 하는 스트링이 해당 encoding에서 지원하지 않는 character를 포함하고 있을 때 아래와 같이 오류가 발생되는 경우가 있다.

original string은 UTF-8로 encoding되어 있으며, 이를 euc_kr로 변환하고자 한다

original_str.decode('utf-8').encode('euc_kr')
original_str = "레르 리키드 쏘시에떼 아노님 뿌르 레�드 에렉스뿔라따시옹 데 프로세데 조르즈 클로드"

UnicodeEncodeError: 'euc_kr' codec can't encode character u'\ufffd' in position 20: illegal multibyte sequence

print a.decode('utf-8').encode('euc_kr','replace')
레르 리키드 쏘시에떼 아노님 뿌르 레?드 에렉스뿔라따시옹 데 프로세데 조르즈 클로드
이때 위와 같이 encode 옵션으로 'replace' 또는 'ignore' 옵션을 사용하면 해당 character를 무시하고 encoding을 변환할 수 있다.

댓글 1개: