티스토리 뷰
발생일: 2014.07.10
키워드: node, 노드, 문자열 인코딩, 디코딩, euc-kr, utf-8
문제:
노드에서 euc-kr 문서를 읽어 utf-8 로 변경해 처리하려고 한다.
해결책:
노드의 네이티브 인코딩에는 euc-kr 이 포함되어 있지 않다.
대안으로 iconv 라이브러리를 이용해 처리할 수 있다.
1. euc-kr 로 인코딩된 문서는 바이너리로 읽어온다.
2. 새 버퍼에 대상 문자열을 할당한 후, iconv 로 변경한다.
function eucKrToUtf8(str) {
var iconv = new Iconv('euc-kr', 'utf-8');
var buf = new Buffer(str, 'binary');
return iconv.convert(buf).toString();
}
논의:
난 jsdom 으로 euc-kr 로 인코딩된 문서를 읽어올 목적이었다.
같은 목적이라면, jsdom 에서 문서를 읽어올 때 아래처럼 binary 옵션을 주면 된다.
jsdom.env({
url: ...
src: ...,
encoding: 'binary',
...
});
참고:
반응형
댓글
공지사항