python 기초

data type encoding - decoding

난개발자 2023. 1. 22. 21:28
728x90

인코딩이란, 사람이 인지할 수 있는 형태의 데이터를 컴퓨터가 인지할 수 있는 형태로 변환하는 과정이다.

반대로 디코딩이란, 인코딩의 역과정이라고 할 수 있다.

https://namu.wiki/w/%EC%9D%B8%EC%BD%94%EB%94%A9

 

인코딩 - 나무위키

문자 코드를 전산기기 안에서 0, 1로 저장하는 방식. 많은 사람들이 문자 코드와 문자 인코딩을 잘 구분하지 못하지만, 이 둘은 "부호화"라는 관점에서 같지만 "개념"은 엄연히 다르다. 1바이트 인

namu.wiki

인코딩과 디코딩

 

여기서 사람을 위한 데이터와 컴퓨터를 위한 데이터(숫자) 사이의 매칭을 약속해두고, 어떤 규약을 사용하였는지 명시해야한다.

대표적으로 ASCII, utf-8, utf-16 등이 있다.

 

python에서는 encode / decode를 통해 변환할 수 있다.

# -*- coding: utf-8 -*-
text = '사람이 인지할 수 있는 형태'
print(text)
print(type(text))
text_for_pc = text.encode('utf-8')
print(text_for_pc)
print(type(text_for_pc))

text_decoded = text_for_pc.decode('utf-8')
print(text_decoded)
print(type(text_decoded))

 

아래와 같이  출력됨을 확인할 수 있다.

사람이 인지할 수 있는 형태
<class 'str'>
b'\xec\x82\xac\xeb\x9e\x8c\xec\x9d\xb4 \xec\x9d\xb8\xec\xa7\x80\xed\x95\xa0 \xec\x88\x98 \xec\x9e\x88\xeb\x8a\x94 \xed\x98\x95\xed\x83\x9c'
<class 'bytes'>
사람이 인지할 수 있는 형태
<class 'str'>

 

추가로, code의 맨 앞에는 encoding을 명시해주는 것이 필요하다.

 

 

 

 

 

 

728x90