VisualStudioCode(VSC) 에서 한글 깨짐 이슈

2025. 10. 28. 13:26·C#

 

Unity 프로젝트 협업 중 팀원의 주석이 및 한글 문자가 깨지는 현상을 발견했따

//�̱��� ���� //1. �ı����� �ʵ��� DonDestroy //2. �̹� �ڽ��� �����ϸ� �ı�

 

???

 

확인 결과 Git에도 정상적으로 올라가있고,

내 환경에서만 이러한 현상이 발견됐다.

 

팀원 모두 VisualStudio를 이용하고 있고

나는 VisualStudioCode를 이용하고 있다.

 

 

원인은 인코딩 불일치라고 한다.

 

VS와 VSC에서 UTF의 인코딩은 다음과 같이 차이가 난다고 한다.

  VS VSC
기본 인코딩 UTF-8 with BOM UTF-8 (no BOM)
Unity C# 기본 저장 Windows 환경에선 UTF-8 with BOM 권장 VSCode는 BOM 없이 저장 시 한글 깨짐 발생 가능
GitHub 웹 표시 UTF-8로 통일되어 정상 표시됨 로컬에서만 깨져 보임

 

 

BOM (Byte Order Mark)

텍스트 파일의 맨 앞 부분에 숨겨진 2~3바이트 크기의 인코딩 식별용 표시 (Byte Signature) 다.

내부적으로 바이트(0~255)로 구성되어 있으며, 한글 일본어 이모지처럼 여러 바이트로 표현되는 문자는 인코딩 방식이 달라지면 깨지게 된다.

 

그래서 BOM을 맨 앞에 추가해두면 운영체제나 IDE가 파일을 열 때 인코딩 파일을 올바르게 인식할 수 있게 된다.

  with Bom no Bom
파일 맨 앞 EF BB BF 3바이트 존재 없음
Visual Studio 기본값 (자동 인식) 문제 없음
VS Code 기본은 no BOM → with BOM 파일 해석 시 깨질 수 있음  
GitHub / Linux 보통 BOM 없이 UTF-8 권장  
Windows / Unity / C# BOM 포함 UTF-8이 일반적  

 

BOM의 장점

파일 인코딩을 명확히 구분 가능

한글 / 일본어 혼합 프로젝트에서 깨짐 방지

VS, Unity, Windows 환경에 적합

 

단점

리눅스 환경에서 스크립트 실행 시 "의도치 않은 바이트"로 인식될 수 있음

일부 프로그램은 BOM을 읽지 못함 (특히 JSON 파서, VSC 처리기 등)

Linu, macOS 환경에서는 보통 BOM 제거를 권장

 

 

 

 

해결법

A. VSC 자동 인코딩 감지 추가

저장 방식을 변경하지 않고 내 로컬 VSC의 세팅을 변경하는 것만으로 해결할 수 있다.

settings.json 에 다음 2줄만 추가하면 올바르게 인식된다.

{
    "files.autoGuessEncoding": true,
    "files.encoding": "utf8"
}

 

  • files.autoGuessEncoding: BOM, CP949, EUC-KR 등을 자동 감지
  • files.encoding: 저장 시 기본 인코딩을 UTF-8로 유지 (BOM 없이)

 

B. VSC 저장 인코딩을 BOM 포함으로 변경

{
    "files.encoding": "utf8bom",
    "files.autoGuessEncoding": true
}

 

이렇게 하면 VS와 완전 동일하게 맞춰진다

Unity, C# 전용 팀에서는 안정적인 해결법이지만

웹, 앱, 맥, 리눅스 등 다양한 환경인 경우는 주의해서 사용해야한다.

 

 

C. .gitattributes로 저장 인코딩 고정

Git 레포 단위로 인코딩을 강제하는 방법도 있다.

프로젝트 루트의 .gitattributes 에 다음 줄을 추가하면 된다.

*.cs text working-tree-encoding=UTF-8-BOM

 

 

 

 

내 경우에는, 유니티와 앱 웹을 모두 다루기도 하고 내 로컬에서만 문제가 발생하는 것이기 때문에 A의 방법으로 간단하게 해결했다.

'C#' 카테고리의 다른 글

C# : Chzzk(치지직) VOD / Clip 다운로더  (0) 2026.03.20
C# - 델리게이트(Delegae). 람다식과 캡쳐, 클로져 문제 (feat. useState)  (0) 2025.11.04
Design Pattern - Singleton Pattern (싱글톤 패턴)  (0) 2025.10.20
Design Pattern - Adapter Pattern (어댑터 패턴)  (0) 2025.10.17
C# - 콘솔로 "2중 버퍼링 (Double Buffering)" 구현하기  (0) 2025.10.15
'C#' 카테고리의 다른 글
  • C# : Chzzk(치지직) VOD / Clip 다운로더
  • C# - 델리게이트(Delegae). 람다식과 캡쳐, 클로져 문제 (feat. useState)
  • Design Pattern - Singleton Pattern (싱글톤 패턴)
  • Design Pattern - Adapter Pattern (어댑터 패턴)
ellug
ellug
Web / App / Game Dev
  • ellug
    dev.ellug
    ellug
  • 전체
    오늘
    어제
    • 분류 전체보기 (95)
      • Javascript (React, Next) (1)
      • C# (66)
      • Graphics (1)
      • Unity (25)
      • 프로그래머스 (0)
        • Lv.0 (0)
        • Lv.1 (0)
        • Lv.2 (0)
        • Lv.3 (0)
      • AI Agent (0)
      • StableDiffusion (0)
      • ETC (1)
      • 잡담 (0)
      • 유머 (0)
  • 블로그 메뉴

    • 홈
  • 링크

  • 공지사항

  • 인기 글

  • 태그

    큐
    Design Pattern
    최적화
    Abstract
    function
    inputsystem
    유니티
    list
    자료구조
    C#
    unity
    delegate
    Queue
    struct
    알고리즘
    firebase
    interface
    네트워크
    콘솔
    터미널
    클래스
    스택
    stack
    Photon
    Network
    useState
    console
    추상 클래스
    게임
    class
  • 최근 댓글

  • 최근 글

  • hELLO· Designed By정상우.v4.10.4
ellug
VisualStudioCode(VSC) 에서 한글 깨짐 이슈
상단으로

티스토리툴바