- 3
- 이니스프리
- 조회 수 338
저는 파이썬에 대해 아주 기초적인 내용만을 알고 있습니다 ㅠㅠ
나중에 수정해야 할 부분이나 새로 추가해야 할 부분을 발견하게 되면 보완하도록 하겠습니다.
1) 파이썬3은 파이썬2와 달리 UTF-8이 디폴트이기 때문에 #-*- coding:utf-8 -*- 이 구문은 불필요합니다.
2) 스트링의 인코딩과 관련해서는 파이썬 2.X와 표현이 조금 달라진 점이 있습니다.
s = "한글"
u = str(s, "utf-8")
3) 변수에 담긴 문자열에 인코딩 문제가 발생하면 다음과 같이 해결하시면 됩니다 ^^
var_string = var_string.decode('cp949').encode('utf-8')
4) 외부 라이브러리의 인코딩을 설정하려면 다음과 같은 방식으로 하시면 됩니다.
import sys
reload(sys)
sys.setdefaultencoding('utf-8')
5) 입출력과 관련해서는 다음과 같은 방식으로 처리하시면 됩니다.
with open('euc_kr.txt', encoding='euc-kr') as f:
또는
f = open("utf8.txt", 'w', encoding='UTF-8')
6) 아톰 계열의 에디터에서 문제가 발생하면 다음과 같은 내용을 스크립트에 추가하시면 됩니다.
import sys
import io
sys.stdout = io.TextIOWrapper(sys.stdout.detach(), encoding = 'utf-8')
sys.stderr = io.TextIOWrapper(sys.stderr.detach(), encoding = 'utf-8')
추가) Beautifulsoup에서의 인코딩은 다음과 같이 처리합니다.
soup = BeautifulSoup(html, 'html.parser', from_encoding='euc-kr')
작성자
댓글 3
![profile image](/files/member_extra_info/profile_image/640/096/96640.gif?t=1548527149)
![comment menu](/modules/board/skins/comely_board/images/icn_more.png)
![profile image](/files/member_extra_info/profile_image/819/059/59819.png?t=1717193427)
현재 윈도우 커널에 유니코드가 적용되었음에도 불구하고
윈도우 95 시절의 CP949를 왜 아직도 윈도우의 디폴트 인코딩으로 사용하는지 모르겠어요.
그리고 일부 웹사이트에서 CP949를 아직도 사용하더군요 ㅠㅠ
심지어 인코딩으로 EUC-KR을 선언해 놓고서 CP949로 인코딩된 페이지를 보내는 웹사이트들도 있어서 헷갈리더군요.
여담이지만 인코딩 문제에 아주 민감하신 분들은
커널에 직접 접근하는 보안프로그램은 2바이트 문자권의 언어가 아닌 영문판을 사용하길 권한다고 말씀하시기도 하더군요.
![comment menu](/modules/board/skins/comely_board/images/icn_more.png)
![profile image](/files/member_extra_info/profile_image/640/096/96640.gif?t=1548527149)
![comment menu](/modules/board/skins/comely_board/images/icn_more.png)
2바이트 문자권인 한글로 인해 항상 문제가 생기는 것 같습니다. ㅠㅠ