티스토리 뷰

Python

Python, bytes를 문자열로 변환하기

hwangyoungjae 2016. 5. 24. 14:34
336x280(권장), 300x250(권장), 250x250, 200x200 크기의 광고 코드만 넣을 수 있습니다.

Python3에서

기본적으로 urllib 모듈을 통해서 끌어온 데이터는 byte형이다 

linux에서는 기본 encoding이 utf-8이라 특별히 문제가 되지 않지만(linux에서 python3는 확인을 못해봐서 모르겠다)

window에선 기본encoding이 cp949라서  urllib모듈을 통해 가져온 문자열이 byte형태로 변해서 육안으로 확인이 힘들어진다

이때 decode('utf-8')을 이용해서 byte('utf-8')형태의 데이터를 decoding해줌으로서 문자열을 육안으로 확인이 가능하다

 

즉, 웹에서 사용하는 인코딩은 utf-8이고

python3에서 사용하는 인코딩은 unicode이다.

그래서 웹에 있는 문자열을 그대로 가지고 오면 utf-8형태의 문자열이기 때문에 bytes클래스로 취급을 한다.

따라서 이를 utf-8인코딩 문자를 unicode로 다시 decode하여 python에서 사용할수 있게 한다.

 

>>> import urllib.request
>>> data=urllib.request.urlopen('http://127.0.0.1').read()
>>> data
b'TEST\n'
>>> data.decode('utf-8')
'TEST\n'

 

bytes의 클래스의 문자열을 str클래스로 변환가능하다.

문자열을 utf-8형태로 다시금 변경하는건

'TEST\n'.encode('utf-8')이라고 하면 된다.

 

'Python' 카테고리의 다른 글

Python,module socket [소켓통신]  (0) 2016.05.24
Python, 이메일보내기  (0) 2016.05.24
Python, str(), repr(), ascii(),eval()  (0) 2016.05.24
Python, XML사용하기  (0) 2016.05.20
Python,module weakref [약한참조]  (0) 2016.05.20
댓글
공지사항
최근에 올라온 글
최근에 달린 댓글
Total
Today
Yesterday
링크
«   2024/07   »
1 2 3 4 5 6
7 8 9 10 11 12 13
14 15 16 17 18 19 20
21 22 23 24 25 26 27
28 29 30 31
글 보관함