이것은 파이썬 2.4입니다. 여기에 내 상황이있다. 데이터베이스에서 문자열을 가져오고 움라우트 된 'o'(\ xf6)가 포함되어 있습니다. 이 시점에서 유형 (값)을 실행하면 str을 반환합니다. 그런 다음 .decode ('utf-8')를 실행하려고하면 오류가 발생합니다 ('utf8'코덱은 1-4 위치의 바이트를 디코딩 할 수 없습니다).파이썬 2.4에서 유니 코드 문자열을 디코딩 할 수 없습니다.
정말 내 목표는 성공적으로 형식 (값) 반환 유니 코드를 만드는 것입니다. 유용한 정보가있는 earlier question 이 발견되었지만 선택 응답의 예가 나를 대신 실행하지 않는 것 같습니다. 내가 여기서 잘못하고있는 것이 있습니까? 그 첫 번째 명령문에 실패하기 때문에,
Name = 'w\xc3\xb6rner'.decode('utf-8')
file.write('Name: %s - %s\n' %(Name, type(Name)))
실제로 쓰기 문에 결코 : 여기
재현하는 몇 가지 코드입니다.도움 주셔서 감사합니다.
편집 :
내가는 DB의 캐릭터 세트는 UTF8 것을 확인했습니다. 그래서 내 코드를 재현하기 위해 '\ xf6'을 '\ xc3 \ xb6'으로 변경했으며 실패가 여전히 발생합니다. 'utf-8'과 'utf8'의 차이점은 무엇입니까?
코덱을 사용하여 파일에 쓸 팁은 편리합니다 (필자는이 파일을 확실히 사용합니다). 그러나이 시나리오에서는 디버깅 목적으로 만 로그 파일에 쓰려고합니다.
데이터베이스 테이블에서 사용하는 문자셋은 무엇입니까? 아마도 UTF-8이 아닌 것 같습니다. 대신'decode '에 전달하십시오. – elo80ka