1
1

More than 1 year has passed since last update.

Node.jsのchild_process実行時の出力結果で日本語を表示させたい

Last updated at Posted at 2023-09-14

背景

Node.jsから、コマンドライン実行をためそうと思いましたが、標準出力やエラー内容に日本語が含まれていると、文字化けする。。。
いろんなサイトをみてても、なんだかうまくいかなかったので、解決法をめも。

環境

  • Windows 10 64bit
  • Node.js(v18.0.0)

Node.jsのパッケージ

  • cmd > npm install express
  • cmd > npm install iconv-lite

test_exec.js

test_exec.js
const proc = require("child_process");
const iconv = require("iconv-lite");

proc.exec("dir", {encoding:"Shift_JIS"}, (error, stdout, stderr)=>{
    console.log(`stdout:${iconv.decode(stdout,"Shift_JIS")}`)
    console.log(`stderr:${iconv.decode(stderr,"Shift_JIS")}`)
})

⇒これで、日本語でも大丈夫になった!!

メモ

  • exec実行時に文字コードをShift_JISにエンコードして、文字を出力するときにShift_JISでデコードすればよいだけだった。
    わかれば一瞬だけど、結構時間かかった。。
1
1
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
1
1