배포 한 버전의 장고 응용 프로그램을 사용할 때 lxml에 이상한 문제가 있습니다. lxml을 사용하여 서버에서 가져 오는 다른 HTML 페이지를 구문 분석합니다. 이것은 내 자신의 컴퓨터에있는 개발 서버에서 완벽하게 작동하지만, 어떤 이유인지 그것은 UnicodeDecodeError
을 서버에 제공합니다.장고와 lxml의 디코딩 문제
('utf8', "\x85why hello there!", 0, 1, 'unexpected code byte')
나는 (mod_python을 포함) 아파치 LANG='en_US.UTF-8'
으로 실행해야 만들었습니다.
나는이 문제에 대한 검색을 시도하고 올바르게 문자열을 해독하는 다른 방법을 시도했지만 그것을 알아낼 수 없습니다.
귀하의 대답에 내 문자열이 hello
또는 뭔가라고 가정 할 수 있습니다.
동의. 시도 "\ x85why hello there!". decode ("utf-8"). 비 유니 코드 코드 (\ x85)가 유니 코드 코드로 변경됩니다. "# - * - coding : utf-8 - * -"(따옴표 제외)를 .py 파일의 맨 위에 추가해야 할 수도 있습니다. – landyman
사실 이것은 아마도 utf-8이 아닌 바이트 문자열을 반환함으로써 발생했을 가능성이 높습니다. 일반적으로 UTF-8 문자열을 생성한다고 주장하는 경우에는 내부적으로 유니 코드 형식을 사용하고, 비트를 입력하기 직전에 utf-8로 인코딩해야합니다. 바이트 문자열을 함께 사용하면 거의 확실하게 어딘가에서 엉망으로 만든 다음 훨씬 나중에 찾을 수 있습니다. FWIW, "\ x85"== "#". –