nodejs에서 한글이 깨지는 현상은
iconv 나 iconv-lite 모듈을 이용하여 처리 가능하다.
iconv-lite는 iconv를 보고 자바스크립트로만 만들어진 모듈이다.
아래는 request 모듈을 이용하여 네이버 뉴스 페이지를 파싱하던중
한글깨짐이 발생하여 확인한 것이다.
둘중 편한 방법을 사용하면 될 것 같다.
var request = require("request");
var cheerio = require('cheerio');
var iconv = require('iconv-lite');
//var Iconv1 = require('iconv').Iconv;
var requestOptions = { method: "GET"
,uri: "http://news.naver.com/main/list.nhn?mode=LS2D&mid=shm&sid1=105&sid2=731"
,headers: { "User-Agent": "Mozilla/5.0" }
,encoding: null
};
request(requestOptions, function(error, response, body) {
//iconv를 사용하는 방법
//var strContents = new Buffer(body, 'binary');
//iconv = new Iconv1('euc-kr', 'UTF8');
//strContents = iconv.convert(strContents).toString();
// iconv-lite를 사용하는 방법
iconv.extendNodeEncodings();
var strContents = new Buffer(body);
console.log(strContents.toString('euckr'));
});
반응형
'프레임워크 > [JS] node.js' 카테고리의 다른 글
| [nodejs] zip 파일 생성하기 (1) | 2016.04.11 |
|---|---|
| [nodejs][cheerio] cheerio를 이용한 네이버 IT 뉴스 페이지 파싱하기 (0) | 2016.04.06 |
| [nodejs][express] express 설치 및 기본 프로젝트 생성하기 (0) | 2016.03.30 |
| [jade] node.js용 html 템플릿 엔진 (0) | 2016.03.10 |
| [ejs] html 페이지 템플릿을 위한 ejs 모듈 예제 (0) | 2016.03.08 |