REACT · VISUAL STUDIO 2022 · UTF-8
React 화면의 한글 깨짐,
파일 인코딩부터 확인하세요
React 실행 후 한글이 이상한 문자로 표시된다면 소스 파일의 저장 인코딩을 먼저 확인해 보세요. 이 글은 기존 Visual Studio 2022 화면 예시를 바탕으로, 한글이 정상적으로 보이는 파일을 UTF-8로 저장하는 절차를 정리한 안내입니다.
한글이 깨지는 위치 확인 → 원본 문자가 정상인지 확인 → UTF-8로 저장 → 다시 실행 → 브라우저 표시 확인
1. 한글이 깨지는 위치부터 구분하기
소스 파일, 브라우저 화면, API 응답 중 어디에서 한글이 깨지는지에 따라 확인할 곳이 달라집니다. 파일을 UTF-8로 저장하는 방법이 모든 한글 깨짐을 해결하는 것은 아닙니다.
| 증상 | 우선 확인할 곳 |
|---|---|
| 편집기에서 한글이 이미 깨짐 | 파일을 읽을 때 사용한 인코딩과 원본 파일 상태 |
| 편집기에서는 정상, 실행 화면에서는 깨짐 | 소스 파일 저장 인코딩과 빌드 결과 |
| 고정 문구는 정상, API 데이터만 깨짐 | API 응답·서버 직렬화·DB 저장 데이터 |
| 문자가 네모 상자로 표시됨 | 글꼴의 한글 지원 여부도 함께 확인 |

편집기에서 이미 한글이 잘못 보이면 원래 인코딩으로 다시 열어 정상 표시되는지 먼저 확인합니다. 이미 물음표나 대체 문자로 저장되어 원문이 손실된 경우에는 UTF-8로 바꾸기만 해서는 복구되지 않으며, Git 이력이나 백업에서 원본을 찾아야 합니다.
2. Visual Studio 2022에서 UTF-8로 저장
1단계 · 문제가 있는 소스 파일 열기
한글 문자열이 들어 있는 .js, .jsx, .ts, .tsx 등의 파일을 엽니다. 편집기에서 문장이 정상적으로 보이는지 확인한 뒤 진행합니다.
2단계 · 다른 이름으로 저장 선택
상단 파일(File) 메뉴에서 현재 파일의 다른 이름으로 저장(Save As) 항목을 선택합니다.

3단계 · 인코딩하여 저장 선택
저장 대화상자의 저장 버튼 옆 화살표를 누르고 인코딩하여 저장(Save with Encoding)을 선택합니다.


4단계 · UTF-8 인코딩 지정
고급 저장 옵션의 인코딩 목록에서 UTF-8 / 코드 페이지 65001 항목을 선택하고 확인합니다. 기존 글에서는 유니코드(서명 있는 UTF-8) — 코드 페이지 65001을 선택한 방법을 안내했습니다.
저장할 경로와 파일명이 기존 파일과 일치하는지 확인하세요. 별도 파일로 저장했다면 실제 프로젝트가 사용하는 파일에도 변경이 반영되어야 합니다.
5단계 · 실행 화면 확인
변경 내용을 저장한 뒤 기존 프로젝트의 실행 방식으로 다시 확인합니다. 화면에 반영되지 않을 때에는 개발 서버를 재시작하고 브라우저를 새로고침합니다.

3. UTF-8과 BOM의 차이
BOM은 파일 앞부분에 들어갈 수 있는 인코딩 식별 표시입니다. Visual Studio에서 말하는 “서명 있는 UTF-8”은 BOM이 포함된 UTF-8을 뜻합니다.
| 표기 | 의미 |
|---|---|
| UTF-8 / 서명 없는 UTF-8 | BOM이 없는 UTF-8 |
| UTF-8 with BOM / 서명 있는 UTF-8 | 파일 앞에 BOM 표시가 포함된 UTF-8 |
| 코드 페이지 65001 | UTF-8을 나타내는 Windows 코드 페이지 번호 |
핵심은 원본 문자가 정상인 상태에서 파일을 UTF-8로 저장하고, 읽는 쪽에서도 일치하는 인코딩으로 해석하는 것입니다. BOM 유무는 프로젝트와 사용 도구의 규칙에 맞추세요.
4. VS Code에서 확인하는 방법
Visual Studio 2022와 Visual Studio Code는 서로 다른 편집기입니다. VS Code에서는 오른쪽 아래 상태 표시줄의 인코딩 항목을 클릭합니다.
| 메뉴 | 사용할 상황 |
|---|---|
| Reopen with Encoding 인코딩하여 다시 열기 | 현재 파일의 바이트를 다른 인코딩으로 읽어 정상 문자인지 확인할 때 |
| Save with Encoding 인코딩하여 저장 | 정상적으로 표시되는 문자를 UTF-8 등으로 변환해 저장할 때 |
- 편집기에서 한글이 정상이라면 Save with Encoding → UTF-8로 저장합니다.
- 한글이 깨져 있다면 덮어쓰기 전에 Reopen with Encoding으로 실제 원본 인코딩을 선택합니다.
- 예전 한국어 Windows 파일이라면 원본이 CP949 등의 인코딩인지 확인할 수 있습니다. 파일의 생성 환경을 기준으로 판단하세요.
- 문자가 정상적으로 보이는 것을 확인한 뒤 UTF-8로 저장합니다.
프로젝트의 VS Code 기본 인코딩을 지정하려면 .vscode/settings.json의 기존 설정에 다음 항목을 병합할 수 있습니다.
{
"files.encoding": "utf8"
}
이 설정만으로 기존 파일 전체가 자동 변환되지는 않습니다. 문제가 있는 파일은 개별적으로 확인해야 합니다.
5. 수정 후 확인과 추가 점검
소스 파일과 데이터 응답 구분
컴포넌트에 아래처럼 고정 문구를 잠시 표시해 보세요.
export default function EncodingCheck() {
return <p>한글 표시 확인: 안녕하세요.</p>;
}
고정 문구는 정상인데 서버에서 받은 값만 깨진다면, 브라우저 개발자 도구의 Network → 해당 API → Response에서 응답을 확인합니다. API 응답부터 깨져 있으면 소스 파일보다 서버의 문자 처리와 DB 원본 값을 먼저 확인합니다.
HTML 문자셋 확인
프로젝트가 직접 관리하는 HTML 진입 파일이 있다면 head 안의 문자셋 선언도 확인합니다.
<meta charset="UTF-8" />
이 선언은 HTML의 문자셋을 알려 주는 역할을 하며, 이미 손상된 JavaScript 문자열이나 API 데이터를 복구하지는 않습니다. HTML 파일 위치는 프로젝트 구성에 따라 다릅니다.
실행·배포 결과 확인
- 실제로 사용하는 소스 파일을 저장했는지 확인합니다.
- 개발 서버를 재시작한 뒤 브라우저를 새로고침합니다.
- 운영 사이트라면 수정된 소스로 다시 빌드하고 배포했는지 확인합니다.
- 여전히 예전 문구가 보이면 브라우저·서비스 워커·서버 캐시 여부를 확인합니다.
- 편집기에서 원문 한글이 정상인가?
- 문제가 있는 파일을 UTF-8로 저장했는가?
- 실행 화면의 고정 문구가 정상인가?
- API 데이터도 정상인지 별도로 확인했는가?
공식 참고: Visual Studio 인코딩 저장·열기 · VS Code 파일 인코딩 지원
