IT/Python

python encoding

준나이 2018. 10. 15. 11:22

[python encoding]

https://wikidocs.net/15133

인코딩(encoding) : 문자셋의 규칙대로 바이트를 만드는 방법

.py 내 default encoding 명시 : # -*- coding: utf-8 -*-
(파이썬에서 사용되는 문자열은 모두 유니코드 문자열)

>>> b = a.encode('utf-8')
>>> b
b'Life is too short'
>>> type(b)
<class 'bytes'>


디코딩 (decoding)
>>> a = '한글'
>>> b = a.encode('euc-kr')
>>> b.decode('euc-kr')
'한글'


[ Encoding with File I/O]

1) 입력으로 받은 바이트 문자열을 가능한한 가장 빨리 유니코드 문자열로 디코딩 할 것.
2) 변환된 유니코드 문자열로만 함수나 클래스등에서 사용할 것.
3) 입력에 대한 결과를 전송하는 마지막 부분에서만 유니코드 문자열을 인코딩해서 리턴할 것.

# 1. euc-kr로 작성된 파일 읽기
with open('euc_kr.txt', encoding='euc-kr') as f:
data = f.read() # 유니코드 문자열

# 2. unicode 문자열로 프로그램 수행하기
data = data + "\n" + "추가 문자열"

# 3. euc-kr로 수정된 문자열 저장하기
with open('euc_kr.txt', encoding='euc-kr', mode='w') as f:
f.write(data)



[Python URL 한글 인코딩 방법]
https://dololak.tistory.com/255

GET 방식을 통해 HTTP 요청을 하게 되는 파라미터 정보는 경우 URL 뒤에 붙어 전송됩니다.
이때 URL은 ASCII 코드값만 사용되는데, 한글은 ASCII 코드로 표현할 수 없으므로 인코딩 해주어야 합니다.

'''
from urllib import parse

url = parse.urlparse('http://www.exeam.org?examParam1=value1&examParam2=한글')
query = parse.parse_qs(url.query)
parse.urlencode(query, doseq=True) # query는 dict / tup 형태 #examParam2=%ED%95%9C%EA%B8%80&examParam1=value1

# quote(), unquote() for encoding simple string
'''

'IT > Python' 카테고리의 다른 글

matplotlib 에서 latex 쓰기  (1) 2022.11.19
np.unravel_index() 설명 및 사용예시 정리  (0) 2022.11.15