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);

위 코드 결과

 

반응형