2014-11-18 2 views
0

에 ASCII가 아닌 값을 유니 코드 U 가입 가입 -내가 문자열 변수가 파이썬

nor = u''.join(val) 

을가 예외 중

를 던졌습니다
UnicodeDecodeError: 'ascii' codec can't decode byte 0xc3 in position 0: ordinal not in range(128) 

내가, 어떻게 가입해야하는 여러 가지 방법을 시도했지만이 작품을 만들 수 없습니다

+0

하브 e 다른 UnicodeDecodeError 질문들과 다른 곳을 보았습니까? [Python 방법] (https://docs.python.org/3/howto/unicode.html)? – jonrsharpe

답변

1

접두사는 리터럴 값을 작동; 접두사가있는 구문은없는 구문과 다른 개체 유형을 만듭니다.

은 유니 코드로 디코딩해야하고, 다른 방향으로 unicode 객체는 바이트로 인코딩하여 str 객체로 변환 할 수 있습니다, 이미 생성 str 객체를 변환합니다.

바이트를 유니 코드로 명시 적으로 디코딩하지 않으면 파이썬이 ASCII 코덱을 사용하여이를 암시 적으로 처리합니다. 그것은 당신을 위해 실패 했으므로 당신은 그것을 명백하게하고 싶습니다. 이 경우 u''.join()을 사용하고 싶지 않습니다. 그것은 연속열을 연결하기위한 것입니다. 여기에서 str.decode() 방법을 사용하십시오.

디코딩에 사용하는 코덱은 데이터에 따라 다릅니다. 여기에서는 데이터가 UTF-8로 인코딩되었다고 가정했습니다. 자신의 데이터에 맞는 코덱이 무엇인지 스스로 결정해야합니다.

Spolsky 조엘에 의해 :

당신은 아마 여기 바이트 문자열 대 유니 코드에 대한 몇 가지 독서를하고 싶은