파이썬 유니 코드 문자열에 문제가 있습니다. 유니 코드 문자열을 인쇄 할 때 파이썬은 유니 코드 전용 문자를 올바르게 표시하지만이 문자열이 목록 안에 있으면 Python은이 동일한 문자를 이상한 코드로 변환합니다.파이썬 유니 코드 목록 이상한
다음은 예제 코드입니다 :
# -*- coding: utf-8 -*-
s = 'São Paulo'
print s
>>São Paulo
OK!
# -*- coding: utf-8 -*-
l = ['São Paulo']
print l
>>['S\xc3\xa3o Paulo']
Not OK ... 올바른 형식의 유니 코드 문자열을 표시하지 않습니다. 당신이 그것에 대해 생각을 중지하면, 코너의 경우 모호성을 피하기 위해 정말 불가피 - 컨테이너 (print
이 암시 적으로 사용하는 것입니다)에
당신은'repr()'디버그 출력을 가지고 있습니다. 모든 파이썬 컨테이너는 그 내용을 보여주기 위해 컨테이너를 사용합니다. 이것은 * 정상적인 동작입니다. 레코드에는 UTF-8로 인코딩 된 데이터를 포함하는 * 바이트 문자열 *이 있습니다. 유니 코드 문자열을 얻으려면 * 디코드 *하거나'u '..'접두사를 사용해야합니다. 그래도'unicode' 객체를리스트에 가지고 있다면 디버깅 출력을 얻을 수 있습니다. –
이 동작은 기본 문자열 인코딩이 유니 코드로 변경된 Python 3에서 변경되었습니다. –