다운로드 한 웹 페이지 ('something'.html'로 저장 됨)를 읽고 이에 따라 구문 분석하는 프로그램을 작성하고 있습니다. 이 프로그램의 인코딩과 디코딩을 올바르게하는 데 어려움을 겪고 있습니다. 그것은 대부분의 웹 페이지는 ISO-8859-1 인코딩 된 나의 이해 그리고 나는이 페이지의 응답을 확인하고 그게 내가 주어진 캐릭터 세트이다 : 그것은 선언 페이지의 메타 태그에, 그러나파이썬을 사용하여 파일에 UTF-8로 텍스트를 쓸 수 없습니다.
>>> print r.info()
Content-Type: text/html; charset=ISO-8859-1
Connection: close
Cache-Control: no-cache
Date: Sun, 20 Feb 2011 15:16:31 GMT
Server: Apache/2.0.40 (Red Hat Linux)
X-Accel-Cache-Control: no-cache
'UTF -8 '는 인코딩 설정입니다 같이
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
그래서, 파이썬에서 나는,이 페이지를 읽어을 분석하고, UTF-8 정상에서 파일을 읽고 일반적으로 쓰기를 포함하여 작성하는 접근 방법을 시도했다 :
with open('../results/1.html','r') as f:
page = f.read()
...
with open('../parsed.txt','w') as f:
for key in fieldD:
f.write(key+'\t'+fieldD[key]+'\n')
나는 읽기 & 쓰기 과정에서 사용할 인코딩 파일을 말하는 명시 적으로 시도 :
with codecs.open('../results/1.html','r','utf-8') as f:
page = f.read()
...
with codecs.open('../parsed.txt','w','utf-8') as f:
for key in fieldD:
f.write(key+'\t'+fieldD[key]+'\n')
명시 적으로 'ISO-8849-1'읽고 'UTF-8'에 쓸 파일을 말하는 :
utf-16으로 작성하고 사전에 추가하기 전에 각 문자열을 별도로 인코딩하는 것을 비롯하여 이러한 아이디어의 모든 순열 및 기타 잘못된 아이디어. 나는 최선의 접근 방식이 무엇인지 모르겠습니다. 그것은 어떤 인코딩을 사용하지 않는 것이 가장 좋았던 것 같습니다. 최소한 텍스트 편집기에서 결과를 올바르게 볼 수있게 만들었습니다. (이맥스, 텍스트 랭글러)
이 주제와 관련하여 여기에서 몇 게시물을 읽었습니다. 계속되고있는 일의 머리 나 꼬리를 만드는 것처럼 보이지는 않습니다.
감사합니다.
[이해가 잘못되었습니다.] (http://www.w3.org/QA/2008/05/utf8-web-growth.html) 대부분의 웹 페이지는 UTF-8을 사용하고 있습니다. 그리고 심지어 Windows 코드 페이지 1252는 잊혀진 저자 덕분에 ISO 8859-1보다 훨씬 더 안전합니다. – Joey
어떤 오류 메시지가 나타 납니까? –
내 이해가 잘못되었는지 여부에 관계없이이 특정 페이지에서 얻은 응답은 ISO-8859-1을 나타냅니다. 실제로 파이썬이 성공적으로 파일에 쓸 것이라는 의미로 오류가 발생하지는 않습니다. 그러나 파일을 보는 데 사용하는 문자에 따라 문자가 올바르게 표시되거나 표시되지 않을 수 있습니다. 감사. – josh