0. 시작하기 전 참고 URLs
Literal에 대한 자료.
https://dsaint31.tistory.com/462
Unicode에 대한 자료.
https://dsaint31.me/mkdocs_site/CE/ch01/code_for_character/#unicode
1. Unicode Literal 기재법
Python 에서 unicode를 사용하여 문자열 lateral을 기재하는 방법.
\u
prefix와 4개의 hex nubmer로 Unicode의 코드값(base16으로 기재됨)을 기재하는 방식 (Unicode Escape Sequence).- basic multilingual planes (BMP) 에 속하는 경우로,
- BMP:
0x00000000
~0x0000FFFF
- 일반적인 글자들의 경우 여기에 대부분 속함.
\U
prefix와 8개의 hex number로 Unicode의 코드값을 기재하는 방식 (Unicode Escape Sequence).- BMP 이외의 higher planes에 속하는 경우 이용됨.
chr(numeric_id)
를 이용하는 방식.- 여기서 argument인
numeric_id
는 Unicode의 코드값을 10진수 또는 16진수의 숫자로 할당함. - 16진수 표현시
0x
prefix가 필요함.
- 여기서 argument인
\N{Unicode's Name}
의 형태로 curly brace 안에 Unicode 이름을 지정하는 방식.- character name을 이용한 Unicode Escape Sequence.
UTF-8
로 인코딩된 웹페이지나 text file에서 복사하여 갖다붙이는 방식.
Escape Sequence와 유사하게
Unicode Escape Sequence를 이용한다고 생각하면 됨.
예제 : \u
를 이용한 Unicode Escape Sequence
# 걀 : ac40
# 귥 : ade5
# kor_char = '\uac40'
kor_char = '\uade5'
kor_char
출력은 다음과 같음.
'귥'
예제 : \U
를 이용한 Unicode Escape Sequence
# kor_char = '\U0000ac40'
kor_char = '\U0000ade5'
kor_char
출력은 다음과 같음.
'귥'
예제 : chr
를 이용.
chr(0xade5)
출력은 다음과 같음.
'귥'
예제 : \N{ }
를 이용한 Unicode Escape Sequence
unicode
모듈의 lookup
과 name
을 통해,
- 특정문자의 Unicode 코드값(=code point)과
- 이름을 확인할 수 있음.
import unicodedata
unicode_name = unicodedata.name(kor_char)
unicode_name
출력은 다음과 같음.
HANGUL SYLLABLE GYULG
찾은 이름에 해당하는 글자를 lookup을 통해 찾을 수 있음.
unicodedata.lookup(unicode_name)
출력은 다음과 같음.
'귥'
이를 이용한 Unicode Escape Sequenc 예제코드는 다음과 같음.
kor_char_1 = f'다음은 \N{HANGUL SYLLABLE GYULG}'
kor_char_1
출력은 다음과 같음.
'다음은 귥'
앞서 살펴본 형태로 문자열 literal을 만들면, len
으로 처리시 글자수로 처리됨(code point의 길이가 아님).
즉, 문자열 str
의 객체라고 보면 된다
snowman_char = "\u2603"
print(type(snowman_char))
len(snowman_char)
snowman_char
728x90
'Python' 카테고리의 다른 글
[Python] Arithmetics, Variables, Types and Assignment (1) | 2024.01.24 |
---|---|
[Python] Unicode and Python: encode and decode (0) | 2024.01.16 |
[Python] Binary Operations (0) | 2024.01.15 |
[Python] `struct` 사용하기: bytes 로 C언어 구조체 다루기. (1) | 2024.01.15 |
[Python] bytes and bytearray: Binary Data for Python (0) | 2024.01.15 |