본문 바로가기
개발자의 개발개발한 하루/python

python 3에서 바뀐 것 (출력방식, 문자열 인코딩)

by ju니어 2022. 2. 14.
728x90
반응형

 

 

python2.xx -> python3.xx로 바뀌면서 바뀐게 많지만 크게 내가 보려고 정리해본다.

 

1. print 차이

python 2.xx에서는 print "하이하이" 이런 식으로 괄호 없이 출력했는데,

python 3.xx에서는 print("하이하이") 이렇게 괄호를 붙여야만 출력되고 에러가 나지 않는다.

 

2. 저장 방식

python 2에서는 ASCII 방식으로 저장되었는데(UNICODE방식도 지원은 되었으나 별도 설정 필요)

python 3에서는 기본 저장 방식이 UNICODE이다.

 

3. string

python 2 에서는 default encoding은 ASCII 이다.

python 3 에서는 모든 string은 unicode이고, 기본 encoding은 utf-8 이다. (그래서 문자열 앞에 u를 붙이거나 unicode 함수를 쓸 필요가 거의 없다..!)

그러나, string을 utf-8이라고 생각하기 보다는 unicode로 생각하는게 좋다.(string.encode 함수 이런게 있으니깐)

 

기본 encoding 방법은 아래 코드(핵심 : sys.getdefaultencoding())로 확인할 수 있다.

import os, sys

def stringtest(myTag):
    print(sys.getdefaultencoding())
    try:
        tmpStr = str(myTag)
    except:
        tmpStr = str(myTag)

 

 

반응형

댓글