1. UTF-8
- 한 문자를 나타내는 데 1~4byte의 가변 길이 인코딩방식
- 영어,숫자 : 1byte, 한글 : 3byte
- 유니코드를 사용하여 인코딩함 ex) (U+C548, 안) -> 0xec9588
- 조합형 방식 : 초성, 중성, 종성으로 구분하여 작성
ex) 하나
-> 하 : \xed\x95\x98 (ㅎ : ed, ㅏ : 95, 공백 : 98)
-> 나 : \xeb\x82\x98 (ㄴ : eb, ㅏ : 82, 공백 : 98)
2. ANSI
(1) EUC-KR
- 1~2byte의 가변 길이 인코딩방식
- 영어,숫자 : 1byte, 한글 : 2byte
- 완성형 방식 : 완성된 문자 하나를 글자로 인식
ex) 하나
-> 하 : \xc7\xcf (C7CF)
-> 나 : \xb3\xaa (B3AA)
(2) cp949
- EUC-KR의 확장팩
- 메모장에서 ANSI를 선택하면 적용되는 코드
3. 유니코드(Unicode)
- 인코딩 방식이 아닌 문자를 순서대로 나열해놓은 코드표(캐릭터셋) [전세계의 문자가 들어있음]
- U+
- 한글 코드 : AC00~D7AF (U+AC00 ~ U+D7AF)
- 파이썬에서 모든 str은 유니코드가 default
문자 : 하나 | |
UTF-8 | \xed\x95\x98\xeb\x82\x98 |
EUC-KR | \xc7\xcf\xb3\xaa |
Unicode | U+D558 U+B098 |
4. 아스키코드(ASCII)
- 10진으로 0~127의 128가지의 문자로 구성된 캐릭터셋 (공백, 특수, 숫자, 알파벳)
- 장점 : 1byte의 문자를 간단하게 사용가능
- 단점 : 2byte이상의 문자 표현 X
● 인코딩(encoding)
- 문자(str) -> 코드(bytes)
# python
s = '하나'
byte_utf8 = s.encode('UTF-8')
print(byte_utf8)
b'\xed\x95\x98\xeb\x82\x98'
- URL 인코딩
from urllib import parse
byte_utf8 = parse.quote('하나', encoding='UTF-8')
print(byte_utf8)
b'\xed\x95\x98\xeb\x82\x98'
● 디코딩(encoding)
- 코드(bytes) -> 문자(str)
# python
byte_utf8 = b'\xed\x95\x98\xeb\x82\x98'
s = s.decode('UTF-8')
print(s)
하나
- URL 인코딩
from urllib import parse
s = parse.unquote('\xed\x95\x98\xeb\x82\x98', encoding='UTF-8')
print(s)
하나
'Langauge > Python' 카테고리의 다른 글
[라이브러리] Unit Test (단위 테스트, 유닛 테스트) (0) | 2021.02.24 |
---|---|
[패키지] sqlalchemy (0) | 2021.02.16 |
[라이브러리] logging (로깅, 로그) (0) | 2021.01.28 |
Pycharm 프로젝트 셋팅 (0) | 2021.01.26 |
Python 라이브러리 (0) | 2021.01.21 |