2011-02-18 5 views
0

서브 버전 프리 컷 후크로 파이썬 스크립트를 가지고 있는데, 메시지 전송시 UTF-8로 인코딩 된 텍스트에 문제가 발생합니다. 예를 들어 입력 문자가 "å"이면 출력은 "? \ 195? \ 165"입니다. 해당 문자 부분을 해당 바이트 값으로 대체하는 가장 쉬운 방법은 무엇입니까? Regexp는 각 요소에 대해 처리를 수행하고 다시 병합해야하기 때문에 작동하지 않습니다.파이썬에서 문자열의 인코딩 오류를 어떻게 해결할 수 있습니까?

코드 샘플 :

infoCmd = ["/usr/bin/svnlook", "info", sys.argv[1], "-t", sys.argv[2]] 
info = subprocess.Popen(infoCmd, stdout=subprocess.PIPE).communicate()[0] 
info = info.replace("?\\195?\\166", "æ") 
+2

문제를 일으키는 코드를 게시하면 도움이 될 것입니다. –

답변

1

내 코드에서 같은 일을하고 당신은 사용할 수 있어야합니다 :

... u_changed_path = 유니 코드 (changed_path를, 'UTF-8') ...

위의 방법을 사용하면 줄 바꿈 등의 문자만으로 문제가 발생합니다. 코드를 게시하면 도움이 될 수 있습니다.

관련 문제