콘텐츠 형식 헤더의 콘텐츠 인코딩 또는 반환 된 HTML 내부의 콘텐츠 형식 메타 태그, 예를 들어, 반환 할 수 웹 사이트 :
<meta http-equiv="Content-Type" content="text/html; charset=latin1"/>
당신은 자동으로이 두 가지를 확인하기 위해 charset 모듈을 사용할 수 있습니다 너를 위해서. 모든 웹 사이트 또는 서버가 인코딩을 지정하지는 않으므로 데이터 자체에서 문자 세트를 감지하는 것으로 넘어 가고 싶을 것입니다. jschardet 모듈을 통해 도움을받을 수 있습니다.
일단 캐릭터 세트를 해결하면 iconv 모듈을 사용하여 실제 변환을 수행 할 수 있습니다.
request({url: 'http://www.myurl.com/', encoding: 'binary'}, function(error, response, html) {
enc = charset(response.headers, html)
enc = enc or jchardet.detect(html).encoding.toLowerCase()
if enc != 'utf-8'
iconv = new Iconv(enc, 'UTF-8//TRANSLIT//IGNORE')
html = iconv.convert(new Buffer(html, 'binary')).toString('utf-8')
console.log($('title', html).text());
});
그럼 내가 요청에 대한 옵션'encoding'를 사용할 수 있다는 것을 알고 있지만, 문제는 내가 (내가 헤더 또는 메타 태그로 알고있는) 페이지의 또 문자 집합을 잘 모릅니다 다음은 전체 예제 – William