[Python] ASCII Conversion
각 문자와 이를 ASCII Code로 서로 바꾸는 건 C에서는 크게 신경쓸 일이 아니었다. 하지만 Python에서 문자는 문자열과 동일하게 취급되며 그 자체의 값을 읽어서는 ASCII 코드가 나오지 않을 수도 있다. (물론 요즘 이런걸 Python으로 쓸 일은 별로 없겠지만 -_-)
필요하다면
필요하다면
ord()
와 이 반대의 chr()
이라는 Built-in function을 이용해서 값을 구하거나 문자로 바꿀 수 있다.<<< ord('a') 97 <<< chr(ord('a')) 'a'하지만 한글을 ord로 변환하려 하면 어이없게도 Syntax Error가 발생한다. (아무래도 Exception인 듯 하지만 -_-) 사실, 한글 같은 멀티바이트 문자는 ASCII범주에서 벗어나니 정상적인 동작이라 뭐라 말하기가 힘들다.
unichr()
이라는 함수도 있다. 이름에서 유추할 수 있듯이 유니코드 문자열로 바꾸는 함수다. 하지만 비슷하게 uniord 같은게 없다는 건 뭔가 안타깝기도 하다. 찾아보면 비슷한 류가 있겠지만 쓸 일이 별로 없을 것 같아서 생략...;;;; (굉장한 귀차니즘 히히)
댓글
>>> print ord(u'한')
54620
utf8은 이렇게? ㅋㅋ
>>> print reduce(lambda x,y: x+y, [ord(ele) for ele in '한'])
542
(기본인코딩이 UTF-8으로 되어 있긴 한데 가끔 새 파일 만들면 최상단에 인코딩 명시 안하는 이상 엉뚱한 인코딩이 되는 경우가 있는게 문제)