잠시 동안 내 머리를 두드려 본 적이 있고 여러 기사를 읽었으며 문제가 더 명확하지 않습니다. 내 데이터베이스에 저장된 문자열의 무리를 가지고, 다음과 같은 상상 :파이썬 UTF8 문자열 혼동
x = '\xd0\xa4'
y = '\x92'
을 다음 내가 할 파이썬 쉘에서 :
내가보고 싶은 정확히 무엇print x
Ф
print y
?
. 그러나 다음이있다 :
print unicode(x, 'utf8')
Ф
하지만이 :
unicode(y, 'utf8')
UnicodeDecodeError: 'utf8' codec can't decode byte 0x92 in position 0: unexpected code byte
내 느낌은 장고 유니 코드로 변환하려고하기 때문에 우리의 문자열이 망가지고있다,하지만 난 단지에 같은데요이다 이 점. 모든 통찰력이나 해결 방법이 감사합니다.
업데이트 : '\ x92'값이 포함 된 행의 데이터베이스를 보면이 문자가 '로 표시됩니다. 아포스트로피. 유니 코드 UTF-8 인코딩을 사용하여 데이터베이스의 내용을보고 있습니다.
로 이동하여 내 문자 인코딩을 변경할 수 있습니다'y'는 유효한 UTF-8 인코딩 된 문자열이 아니다. 왜 파이썬이 이것을 디코딩 할 수있을 것으로 기대합니까? – Thanatos
또한, 저는'x = '\ xd0 \ xa4' (추가 슬래시가 있습니다)라고 가정합니다. – Thanatos
@ Thanatos. 나는 그것을 안다. 그러나 인코딩을 지정하지 않고 어떻게 인쇄 할 수 있습니까? 인코딩을 유추 할 수 있습니까? – dnolen