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

+ Recent posts