한줄 요약:
출력창에 “����” 같은 글자가 떴다고 놀라지 마!
👉 인코딩, 콘솔 설정, 파일 저장 형식만 제대로 맞추면 바로 해결 💪
1. 가장 흔한 원인 요약
| 증상 | 원인 | 해결 핵심 |
|---|---|---|
print("안녕하세요") → 깨짐 | 콘솔 인코딩 불일치 | UTF-8로 변경 |
| 파일 읽기/쓰기 시 깨짐 | encoding 지정 안 함 | encoding="utf-8" |
| 파일 경로 오류 | 한글 경로 처리 문제 | r"경로" 또는 절대경로 사용 |
| 엑셀에서 한글 깨짐 | CSV 인코딩 차이 | utf-8-sig로 저장 |
2. Step 1️⃣ 콘솔(터미널) 한글 깨짐 해결
🪟 Windows CMD / PowerShell
✅ 방법 A. UTF-8 코드페이지로 변경
chcp 65001
이 상태에서 다시 실행하면
print("안녕")이 정상 표시돼요!
(단, 폰트는 “Consolas”나 “맑은 고딕” 등 유니코드 지원 폰트여야 함)
✅ 방법 B. 파이썬 출력 강제 UTF-8
set PYTHONIOENCODING=utf-8
python your_file.py
✅ 방법 C. VSCode / 파워쉘 설정
1️⃣ VSCode 터미널에서 “환경설정 > 출력 인코딩” → UTF-8
2️⃣ 터미널 재시작 후 정상 출력 확인
🍎 macOS / Linux
기본 UTF-8이기 때문에 대체로 깨지지 않음.
만약 터미널이 깨질 경우:
export PYTHONIOENCODING=utf-8
3. Step 2️⃣ 파일 읽기/쓰기 한글 깨짐
❌ 잘못된 코드
f = open("data.txt", "w")
f.write("안녕하세요") # 깨짐 발생 가능!
✅ 올바른 코드
f = open("data.txt", "w", encoding="utf-8")
f.write("안녕하세요")
f.close()
✅ 더 좋은 방식 (자동 닫기)
with open("data.txt", "w", encoding="utf-8") as f:
f.write("안녕하세요\n파이썬 파일 입출력 예제입니다.")
🧩 읽기 시에도 동일
with open("data.txt", "r", encoding="utf-8") as f:
print(f.read())
4. Step 3️⃣ CSV / Excel에서 한글 깨짐
엑셀은 기본적으로 UTF-8이 아닌 CP949 (EUC-KR) 인코딩을 사용합니다.
그래서 utf-8로 저장하면 엑셀에서 깨져요 😭
✅ 해결 1: UTF-8-SIG로 저장
import csv
with open("data.csv", "w", newline="", encoding="utf-8-sig") as f:
writer = csv.writer(f)
writer.writerow(["이름", "점수"])
writer.writerow(["가온", 95])
“utf-8-sig”는 BOM 헤더를 추가해서 엑셀이 정상 인식합니다.
✅ 해결 2: pandas 사용 시
df.to_csv("data.csv", index=False, encoding="utf-8-sig")
5. Step 4️⃣ 한글 경로 오류 해결 (파일 못 찾음)
❌ 오류 예시
FileNotFoundError: [Errno 2] No such file or directory: 'C:\사용자\가온\문서\data.txt'
✅ 해결
1️⃣ 경로 앞에 r(raw string) 붙이기:
path = r"C:\사용자\가온\문서\data.txt"
2️⃣ 슬래시 /로 통일:
path = "C:/사용자/가온/문서/data.txt"
3️⃣ 파일이 진짜 존재하는지 확인:
import os
print(os.path.exists(path)) # True면 정상
6. Step 5️⃣ IDE / 환경설정 점검
| 툴 | 점검 항목 |
|---|---|
| VSCode | 하단 상태바 “UTF-8” 표시 확인 / 없으면 클릭 → UTF-8로 재저장 |
| PyCharm | Settings → Editor → File Encoding → UTF-8 |
| Jupyter Notebook | 노트북 상단 “Save with Encoding” → UTF-8 |
| 메모장 | 저장 시 인코딩 “UTF-8” 선택 필수 |
7. Step 6️⃣ 폰트 문제일 수도 있다!
- Windows 기본 폰트 “Raster Fonts”는 한글 지원 ❌
- 변경 방법:
- CMD → 제목줄 우클릭 → 속성 → 글꼴
- “Consolas” 또는 “맑은 고딕” 선택
8. 종합 점검 체크리스트
- 콘솔 인코딩이 UTF-8인지 (
chcp 65001) open()시encoding="utf-8"을 지정했는지- 엑셀용 CSV는
utf-8-sig로 저장했는지 - 파일 경로는 한글 대신 절대경로/raw string을 썼는지
- 편집기 인코딩이 UTF-8로 되어 있는지
9. 요약 한 줄
파이썬에서 한글이 깨질 때는 UTF-8 + utf-8-sig + chcp 65001
이 세 가지면 거의 100% 해결된다 ✅
이전 강좌 👈 [에러#1] “pip가 안 돼요” 해결 체크리스트
다음 강좌 👉 [에러#3] ModuleNotFoundError: 모듈이 없다고 나올 때 대처법