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 |