Programming/Python

파이썬(Python) 한글 문자 길이

쌍쌍바나나 2017. 12. 10. 23:03
반응형

파이썬 (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가 나온다.

해결 방법

위 문제를 해결하기 위해서는 asciiunicode로 변환을 한 뒤에 처리하면 된다.

소스코드

반응형