본문으로 건너뛰기
Kabkee.github.io
뒤로 가기

Electron에서 만든 Windows BAT 파일의 한글 깨짐 해결: CP949 인코딩과 줄바꿈

2021년 11월 작성, 2026년 10월 보완. 원래 글은 «EUC-KR로 저장해도 충분하다»고 했지만, 한국어 Windows가 쓰는 코드 페이지는 EUC-KR을 확장한 CP949다. EUC-KR로는 표현하지 못하는 한글도 있어서 CP949로 바로잡았고, 따라 할 수 있는 코드를 추가했다.

목차

목차 펼치기

개발 환경

문제 상황

macOS에서 개발한 앱이 Windows에서 BAT 파일을 만들면, 그 BAT 파일이 실행되지 않고 한글이 깨졌다.

원인

해결 방법

npm install iconv-lite
const fs = require("fs");
const iconv = require("iconv-lite");

const lines = ["@echo off", "echo 안녕하세요", "pause"];

// Windows 줄바꿈(CRLF)으로 잇고, CP949로 인코딩해서 저장한다
const text = lines.join("\r\n");
fs.writeFileSync("run.bat", iconv.encode(text, "cp949"));

저장된 파일은 메모장에서 열어 오른쪽 아래 상태 표시줄로 인코딩을 확인할 수 있다. 명령 프롬프트에서 chcp 를 실행하면 현재 코드 페이지가 나온다(한국어 Windows는 949).

정리

  1. 한국어 Windows CMD용 BAT 파일은 CP949로 인코딩해서 저장한다.
  2. 줄바꿈은 Windows 줄바꿈(\r\n)으로 넣는다.

참고자료


이 글 공유하기:

이전 글
Electron에서 Axios로 받은 파일이 깨질 때: ipcMain에서 저장하기
다음 글
GitHub SSH 키 등록하기: ed25519 키 생성부터 연결 테스트까지