반응형
목차
[Python] String 인코딩, 디코딩 함수 (encode, decode)
이번 포스트에서는 스티링의 문장을 인코딩하거나 디코딩해서 binary(바이너리)로 변경하는 함수에 대해 알아보겠습니다. encode() 와 decode()는 string 내부에 내장된 함수 입니다.
encoding에는 많은 종류가 있는데 대표적으로 사용되는 encoding은 아래와 같습니다.
- utf-8
- utf-16
- euc-kr
- ascii
Encode, Decode 함수 Syntax
- Str.encode(encoding='UTF-8',errors='strict')
- Str.decode(encoding='UTF-8',errors='strict')
encoding 속성의 값은 앞서 언급한 encoding 종류를 입력하면 됩니다.
error의 속성값은 아래와 같습니다.
- 'backslashreplace' : 에러 발생시 삭제로 변환
- 'ignore' : 에러 발생 시 무시
- 'namereplace' : Text 설명으로 변경
- 'strict' : Default 값, error 띄움
- 'replace' : 에러 발생 시 ? 물음표로 변경
- 'xmlcharrefreplace' : 에러 발생시 xml 캐릭터로 변경
예제 코드 구현하기 (1) - 정상 동작
코드>>
import base64
words = "안녕 hello"
encoded_words = words.encode(encoding="utf-8", errors="strict")
print(encoded_words)
decoded_words = encoded_words.decode("utf-8", errors="strict")
print(decoded_words)
결과>>
b'\xec\x95\x88\xeb\x85\x95 hello'
안녕 hello
예제 코드 구현하기 (2) - 에러 띄우기
코드>>
import base64
words = "안녕 hello"
encoded_words = words.encode(encoding="ascii", errors="replace")
print(encoded_words)
decoded_words = encoded_words.decode("ascii", errors="replace")
print(decoded_words)
결과>>
b'?? hello'
?? hello
만일 Default 값 "strict"로 에러를 띄우면 아래와 같ㅌ은 경구 메세지가 나옵니다.
UnicodeEncodeError: 'ascii' codec can't encode characters in position 0-1: ordinal not in range(128)
반응형
'파이썬(Python) > 문법' 카테고리의 다른 글
[Python] String 대문자/소문자 바꾸기/ 카운트 함수 (capitalize, upper, lower, count) (0) | 2021.10.14 |
---|---|
[Python] String 단어 나누기, 단어 바꾸기 (split, replace) (0) | 2021.10.13 |
Python 파일 (한글 포함) 읽어서 동일한 문장 개수 카운트 하기 (0) | 2021.10.12 |
분산, 표준 편차란? 파이썬으로 쉽게 계산하기 (예제로 이해하기) (0) | 2021.10.02 |
(python)정규표현식 예제로 이해하기 - 아이디,이메일,전화번호,포트 (0) | 2021.08.11 |