Daylogs/Javascript
node.js: euc-kr 페이지에 보낼 요청 파라미터 인코딩
ohgyun
2018. 9. 29. 22:37
발생일: 2018.09.03
키워드: euc-kr, euckr, node.js, iconv, 인코딩, encoding, escape, encodeURIComponent
문제:
노드에서 euc-kr 로 인코딩 된 페이지로 GET 요청을 보내려고 한다.
한글이 포함된 값을 파라미터로 전송하려고 하는데, 어떻게 인코딩하면 될까?
해결책:
iconv 라이브러리를 활용하면 된다.
const buffer = iconv.encode('한글이 포함된 파라미터', 'euckr'); // 파라미터를 euc-kr 로 인코딩 해 버퍼에 담은 후,
const param = encode(buffer.toString('binary')); // 바이너리로 변환해 이스케이프하면 된다.
논의:
encodeURI() 와 encodeURIComponent() 는 UTF8 인코딩된 문자열을 대상으로 한다.
UTF8로 인코딩되지 않은 문자열을 URL 인코딩(퍼센트 인코딩)하고자 할 땐, 바이너리로 변환 후 escape() 함수를 사용하면 된다.
참고:
노드에서 euc-kr 로 인코딩된 문서나 페이지를 읽어올 땐 아래 포스트를 참고
클라이언트에서 euc-kr로 submit을 보낼 땐 아래 포스트를 참고
반응형