2013-06-04 3 views
1

한 단어로 된 B\xc3\xa9zier 텍스트 파일을 읽었습니다.텍스트 파일에서 읽을 때 파이썬 인코딩 문제가 발생했습니다.

동등한 디코딩 utf-8 형식 (예 : Bézier)으로 변환하여 콘솔에 출력하고 싶습니다.

foo=open("test.txt") 
for line in foo.readlines(): 
    for word in line.split(): 
     print(word.decode('utf-8')) 
foo.close() 

출력은 다음과 같습니다 : 그러나

B\xc3\xa9zier 

나는 이런 식으로 뭔가 할 경우 : 내가 올바른 출력을 얻을

>>> print('B\xc3\xa9zier'.decode('utf-8')) 

을 다음과 같이

내 코드는

Bézier 

왜 이런 일이 발생하는지 파악할 수 없습니까? 당신이 비록 원시 UTF8 파일에서 문자열을 탈출로

+0

가능한 중복 : //stackoverflow.com/questions/491921/unicode-utf8-reading-and-writing-to-files-in-python) – jamylak

답변

6

것 같다, 그것을 디코딩 string_escape를 사용하는 대신

with open('test.txt') as f: 
    for line in f: 
     for word in line.split(): 
      print(word.decode('string_escape').decode('utf-8')) 


Bézier 
[유니 코드 (UTF8) 읽기 및 파이썬에서 파일에 쓰기] (HTTP의
+0

응답 해 주셔서 감사합니다. 제 코드에 어떤 문제가 있는지 알아낼 수 있습니까? –

+1

@Chauhan utf8을 디코드하지 않고 유니 코드 문자열을 이스케이프하지 않으려면'utf-8' 대신'string_escape' 인코딩을 사용해야합니다. – kirelagin

+0

@Chauhan 답변을 업데이트했습니다. – jamylak

관련 문제