내 머릿속 데이터베이스

[Python] 일본어가 포함된 웹페이지 파싱시 주의 사항 본문

Programming/Python

[Python] 일본어가 포함된 웹페이지 파싱시 주의 사항

파도소리 2016. 1. 13. 15:01

https://www.acmicpc.net/blog/view/16

위 예제의 다음 코드를 실행하니 CP949 관련 에러가 났다.




인코딩 에러가 나는 라인은 웹페이지의 일본어 텍스트를 파싱할 때 발생했다.



이 문제를 해결하려고 UTF-8 부터 CP949부터 모든 인코딩 관련 처리를 스택오버플로우에서 검색해서 다 사용해봤지만 결국 찾아낸 원인은 단순했다.


웹페이지도 UTF-8 캐릭터셋이 맞고, 파이썬도 utf-8 캐릭터셋을 사용하는데 출력하는 콘솔(도스창)이 CP949 캐릭터셋을 쓴다.

일본어는 한글 윈도우에서 사용하는 CP949 캐릭터셋을 지원하지 않아서, 내부 값들은 잘 저장되더라도 출력하지 못하는 것이었다.



문제의 커맨드 윈도우.


어쨋거나 출력 결과를 콘솔에 띄워보기 위해서 cp949 캐릭터셋을 지원하지 않는 캐릭터들은 걍 날려버리도록 코드를 수정했다.

위 소스코드의 18번째 라인을 변경하였다.




Comments