코젤브

파일 인코딩 형식 확인하는 법 본문

컴공의 일상

파일 인코딩 형식 확인하는 법

코딩하는 젤리 2024. 8. 19. 17:48

파일 인코딩 형식이 UTF-8이 아니면 한글이 깨지는 경우가 발생한다.

 

파일 인코딩 형식을 한번에 확인하는 방법!

 

1. 에디터에서 확인하기

vscode 같은 에디터에서 인코딩을 제공하기 때문에 확인도 가능

 

2. 원도우 시스템 인코딩 방식 확인하기

윈도우 시스템의 인코딩 방식은 PowerShell에서 [System.Text.Encoding]::Default 명령어를 입력하면 확인할 수 있다.

[System.Text.Encoding]::Default

 

 

3. 여러 파일의 인코딩 형식 한번에 명령어로 확인하기

 

또한 여러 파일의 인코딩 형식을 한번에 확인하는 방법으로,
bash 명령어 사용이 가능한 환경에서 (Git Bash나 WSL 등등) file * 명령어를 통해 확인할 수 있다.

file *

 

 

 

제법 유익하다..

한번에 바꾸는 명령어들도 존재하지만, 항상 파일 손상에 대비해 파일을 백업해두길 추천한다.

 

 

 

아래는 iconv를 사용하여 모든 파일을 UTF-8로 변환하는 방법의 예시이다.

 

1. 파일 인코딩 변환 명령어

다음 명령어는 파일 인코딩을 ISO-8859 또는 ASCII에서 UTF-8로 변환하는 방법

iconv -f ISO-8859-1 -t UTF-8 input_file > output_file
 

위 명령어에서 input_file은 변환할 파일이고, output_file은 변환된 UTF-8 파일이 저장될 경로

 

2. 여러 파일 일괄 변환

파일들이 특정 디렉터리에 있다고 가정하고, 해당 디렉터리 내 모든 파일을 일괄적으로 변환하려면 아래와 같은 스크립트를 사용 가능

for file in *.cpp *.h *.vcxproj *.filters *.md; do iconv -f ISO-8859-1 -t UTF-8 "$file" -o "${file}.utf8" && mv "${file}.utf8" "$file" done
 

이 스크립트는 현재 디렉터리에 있는 .cpp, .h, .vcxproj, .filters, .md 파일들을 모두 UTF-8로 변환

 

3. Windows에서의 방법

Windows에서 PowerShell을 사용할 수 있음
예를 들어, 아래는 PowerShell 스크립트를 사용해 모든 텍스트 파일을 UTF-8로 변환하는 예시

Get-ChildItem -Filter *.cpp,*.h,*.vcxproj,*.filters,*.md | ForEach-Object { $content = Get-Content $_.FullName Set-Content -Encoding UTF8 $_.FullName $content }
 

이 스크립트는 현재 디렉터리 내의 파일 인코딩을 UTF-8로 변환


주의사항

  1. 기존 파일의 백업을 꼭 만들기. 변환 중 문제가 생기면 파일 손상이 발생할 수 있다.
  2. iconv는 파일의 원래 인코딩을 정확하게 알아야 한다. ISO-8859-1 또는 ASCII로 인코딩된 파일이 아닌 경우에는 변환 시 문제가 발생할 수 있으므로, 적절한 인코딩을 지정해야 한다.