웹 브라우저의 인코딩 결정에 관해 질문 드립니다~ㅜㅜ
글쓴이: forglee / 작성시간: 일, 2012/05/27 - 8:23오후
안녕하세요.
저는 최근 크롤러를 개발해보고 있습니다.
크롤러 작동과정은
HttpSocket을 이용해서 웹페이지를 요청하면
HttpSocket내의 HttpParser가 HttpHeader를 분석하고 HttpBody(문서내용)를 저장합니다.
이 저장된 문서를 HtmlParser에 넣고 원하는 작업을 시작하려 하는데
인코딩 문제가 매우 골치아픈듯합니다.
현재 HttpParser에서 헤더 분석후 charset을 보고 적절한 형태로 변형해서 쓰고있습니다. 그런데 문제가 있습니다.
HTTP Response Header 를 보면
HTTP/1.1 200 OK .... ... Content-Type: text/html; charset=UTF-8 .....
이런식으로 전달되어옵니다.
그러면 charset를 보고 이문서는 UTF-8이구나 하고 적절히 해석을 하면되는데
간혹 어떤 페이지는 Content-Type: text/html 만 있는경우가 있습니다.
이 경우는 문서의 인코딩을 어떻게 결정하나요?
html의 header를 분석해서 결정해야되나요?
header에도 명시해주지 않는 페이지 경우에는 어찌할까요?.????
Forums:
HTTP 응답 헤더에 없으면 html 문서 자체를
HTTP 응답 헤더에 없으면 html 문서 자체를 보고 분석합니다. 거기에도 없다면 인코딩을 "추측"합니다. 인코딩 추측 방식은 웹 브라우저마다 다르며, 간편하게 사용할 수 있는 것으로 모질라에서 개발한 chardet 라이브러리가 있습니다.
감사합니다.^^
감사합니다.^^
댓글 달기