Windows 10에서 아나콘다에서 파이썬 2.7.12를 실행 중입니다. 배포판에 ipython 5.1.0이 포함되어 있습니다. mysql 데이터베이스에서 쿼리 된 열의 특정 열을 인쇄하는 프로그램을 작성했습니다. 열은 유니 코드로 된 문자열을 포함합니다. 프로그램이 파이썬에서 실행될 때 문자열 중 하나의 유니 코드 문자가 처음 보일 때 예외가 발생합니다. ipython의 동일한 프로그램이 작동하여 모든 문자가 적절하게 표시됩니다. 파이썬을 사용하여 실행하면파이썬과 ipython은 유니 코드 문자를 다르게 취급합니다.
name = u'O\u2019Connor'
try:
print name
except:
print "exception 1 thrown"
try:
print u"{}".format(name)
except:
print "exception 2 thrown"
try:
print u"%s" % name
except:
print 'exception 3 thrown'
는, 예외가 매번 발생하는 다음과 같이
나는 별도의 작은 프로그램으로 문제를 증류했다. ipython에서 실행될 때 세 개의 print 문이 모두 작동합니다. 분명히 유니 코드가 처리되는 방식에는 두 버전간에 차이가 있습니다. 차이점은 무엇이며 내 프로그램이 어느 환경에서도 실행되도록 처리해야합니까?
예외는 무엇입니까? – Ouroborus
생성 된 실행중인 파이썬 : 파일 "C : \ Anaconda2 \ lib \ encodings \ cp437.py", 줄 12, 인코딩 return codecs.charmap_encode (input, errors, encoding_map) UnicodeEncodeError : 'charmap'코덱은 문자를 인코딩 할 수 없습니다. 1 '위치의 u'\ u2019 ': 문자가 –
sizzzzlerz
으로 매핑됩니다. ipython이 유니 코드를 직접 인쇄하는 동안 파이썬이 유니 코드에서 변환 할 수없는 코덱을 사용하여 인쇄하려고 할 가능성이 있습니다. – Ouroborus