반응형
파이썬 (Python)에서 한글 문자 길이에 대해서 작성한다.
파이썬에서 제일 거지같을 때
만약 파이썬에서 그냥 len(text)를 하면, 어떻게 결과가 나올까
결론부터 말하면 정말 거지같은건 파이썬 2.x의 버전에서는 기본 인코딩은 ascii 이기 때문에
unicode로 처리를 해야 한다.
만약 len(text)를 한다면 len('바나나')의 결과는 3이 아닌 9가 나온다
파이썬에서는 인코딩(encoding)문제가 많아서, 확실하게 이해하고 하나의 솔루션을 만들어 놓는게 좋다.
예를 들면 모든 텍스트에 hangul('바나나')에서 hangul 함수를 만들어 놓으면 좋다.
3이아닌 9가 나오는 이유
그 이유는 ?
'바나나'의 값은 다음과 같다 '\xeb\xb0\x94\xeb\x82\x98\xeb\x82\x98'
'\xeb'부터 하나씩 카운트를 해서 결과는 9가 나온다.
해결 방법
위 문제를 해결하기 위해서는 ascii를 unicode로 변환을 한 뒤에 처리하면 된다.
소스코드
반응형
'Programming > Python' 카테고리의 다른 글
[파이썬] gzip.open, zcat & pipeline 성능비교 (0) | 2017.12.31 |
---|---|
파이썬(Python) 리스트 모든 조합 구하기 (combination vs permutations vs product) (0) | 2017.12.17 |
C를 Python으로 Wrapping하는 방법 (0) | 2017.12.10 |
파이썬 HTML 파싱 하는 방법 (0) | 2017.11.02 |
파이썬 스케일이 다른 그래프 (0) | 2017.11.02 |