Unicode: 3개의 글
파이썬 (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\..
들어가며 Python과MySQL을 사용해본 사람 중에 Encoding문제를 한번도 겪지 않았다면, 이 글을 읽을 필요가 없습니다. 하지만 이 두개는 쌍으로 encoding문제로 괴롭히는 주범이라고 할 수 있지요. 각각의 설정에 대해서 설명하겠습니다. MySQL MySQL에서는 테이블 생성시에 설정을 해주면 됩니다. 테이블의 기본 character 를 utf8로 설정하시면 됩니다. 또는 각 string값이 들어가는 varchar와 같은 변수옆에 character set 'utf8'을 하나씩 해주셔도 됩니다. create table `test`.`test` ( `text` varchar(50) character set 'utf8' ) default character set =utf8 Python MySQLd..
들어가며 지난 포스팅에서 UnicodeEncodeError에 대해서 문제점과 해결방법에 대해서 포스팅을 했다. UnicodeEncodeError:'ascii' codec can't encode characters in position 0-3: ordinal not in range(128) 이 에러는 작기도 하지만... 어쩔때는 엄청 큰 문제야 정말..그렇다면, 애초에 unicode를 신경 쓰지 않고, 기본으로 utf-8로 설정 한다면, 매번 unicode를 unicode_str.encode('utf8')을 할 필요가 없다. 자 이제 그만 귀찮은 작업 하지말고, 근본적인 문제를 해결해보자. 문제점 파이썬 내장모듈인 locale을 import한 뒤에 getdefaultlocale()함수를 통해 현재 loca..