goodthings4me.tistory.com
파이썬 코딩 시 접하게 되는 인코딩과 디코딩을 알아보기 위해 파이썬 문자열 데이터를 encode() 함수로 인코딩하고, 다시 decode() 함수로 디코딩 해본다.
인코딩(Encoding) - 암호화
인코딩 종류 : ASCII, URL인코딩, HTML인코딩, Base64인코딩, 유니코드인코딩
※ 유니코드 인코딩 참고 사이트 : https://home.unicode.org
encode() 함수를 이용하여 가장 많이 사용되는 유니코드 인코딩 중 utf-8 인코딩을 하면,
s = 'Life is too short'
str_enc = s.encode('utf-8')
print(str_enc, type(str_enc))
# b'Life is too short' <class 'bytes'>
kor = '한국'
kor_enc = kor.encode('utf-8')
print(kor_enc)
# b'\xed\x95\x9c\xea\xb5\xad'
인코딩을 하면 타입이 bytes로 나온다. 영문은 b'가 앞에 붙고 나머지는 그대로 보이지만, 한글을 인코딩하면 알아보기 힘든 구조로 됨. 그래서 한글 인코딩이 잘 못 되면 글자가 깨져보임
디코딩(Decoding) - 복호화
사람이 이해할 수 있는 언어도 되돌리는 것.
※ 유니코드 변환 사이트 : https://checkserp.com/encode/unicode
인코딩된 한글을 decode() 함수로 디코딩을 해보면, 정상적으로 보이나 다른 디코더로 디코딩할 경우는 에러 발생(즉, 인코딩 했던 방식으로 디코딩 해야 함)
kor_dec = kor_enc.decode('utf-8')
print(kor_dec, type(kor_dec))
# 한국 <class 'str'>
kor_dec = kor_enc.decode('ascii')
print(kor_dec, type(kor_dec))
# UnicodeDecodeError: 'ascii' codec can't decode byte 0xed in position 0: ordinal not in range(128)
이모지 활용해보기
print('Learning Python : ', '\U0001F400')
print('Learning Python : ', '\U0001F40D')
Learning Python : 🐀
Learning Python : 🐍
python 버전 2.x인 경우, ASCII가 기본 인코딩이었으나 3.x 버전부터 utf-8로 변경되었다. 코딩 시 소스코드 파일이 어떤 방식으로 인코딩되었는지 명시하는 방법은 맨 처음에 아래와 같이 입력한다.
# -*- coding: utf-8 -*-
'코딩 연습 > 파이썬 기초(예제)' 카테고리의 다른 글
파이썬 리스트의 reverse()와 reversed() (0) | 2023.03.26 |
---|---|
숫자 자릿수 맞추기 (0) | 2023.03.22 |
네이버 지식인 문제 - 기호('+' 와 '*')로 만든 사각형 (0) | 2022.10.28 |
소수 판별 함수 만들기 [파이썬 기초] (0) | 2022.10.27 |
과목 평균 구하기 [파이썬 기초 예제] (0) | 2022.10.27 |
댓글