Node.js
[NodeJS] child_process exec 한글 깨짐 해결하기
SongMinu
2021. 8. 18. 20:14
728x90
노드로 ping이나 traceroute 요청에 대해 전달 받은 ip로 결과 값을 전달해줘야 하는 API를 만드는 게 있었다.
노드에서 제공하는 cild_process의 execSync를 사용하면 되는 거라 만드는 거 자체는 어렵지 않았는데
문제는 한글이 깨지는 현상이었다.
기본 디코딩 자체가 utf8인데 euckr은 먹히지도 않아서 찾다 보니 iconv-lite를 사용하면 된다고 해서 적용해봤다.
먼저 iconv-lite를 사용하지 않고 그냥 했을 때 한글 깨지는 것부터 보면 이렇다.
const exec = require('child_process').execSync;
const cmd = 'ping -n 4 8.8.8.8';
let rs = exec(cmd);
rs = rs.toString();
console.log(rs);
이런 식으로 한글이 깨진다.
iconv-lite 적용을 위해 우선 npm install iconv-lite로 설치를 해준 뒤 아래와 같이 작성하면 된다.
const exec = require('child_process').execSync;
const iconv = require('iconv-lite');
const cmd = 'ping -n 4 8.8.8.8';
let rs = exec(cmd);
rs = iconv.decode(rs, 'euc-kr');
console.log(rs);
반응형