- 공유 링크 만들기
- X
- 이메일
- 기타 앱
이 글의 목적은 한글(HWP)에서 특수문자·수학기호·그리스문자·원문자 등 문자 깨짐 현상을 재현 가능한 절차로 진단하고, 폰트·인코딩·내보내기 설정·OS 캐시 등 원인별 조치로 현장에서 즉시 해결하도록 돕는 것이다.
1. 문제 정의와 증상 유형
특수문자 깨짐은 다음 네 가지로 대별한다.
- 입력 시 깨짐: 문자표에서 선택하거나 단축키로 입력했는데 네모(□)·물음표(�)·엉뚱한 글자가 표시되는 경우이다.
- 복사·붙여넣기 시 변형: 웹 페이지·PDF·다른 오피스 프로그램에서 복사해 붙였더니 유니코드 문자가 CP949 계열로 변환되어 틀어지는 경우이다.
- 보기·인쇄·PDF에서만 깨짐: 편집 화면은 정상인데 출력 또는 PDF 변환에서 일부 기호가 사라지거나 대체문자로 바뀌는 경우이다.
- 파일 호환 시 손실: TXT·CSV·DOCX·ODT 등으로 가져오기/내보내기할 때 특정 기호가 물음표로 바뀌거나 삭제되는 경우이다.
2. 원인 구조 이해(시스템 관점)
2.1 폰트 글리프 부재
문자 코드가 유효해도 해당 폰트가 그 문자의 글리프를 포함하지 않으면 대체문자(□, tofu)가 나타난다. 예: 일부 한글 본문용 폰트는 수학 연산자나 문자 장식 기호를 포함하지 않는다.
2.2 인코딩/정규화 불일치
UTF-8, UTF-16, CP949 등 문자 인코딩이 서로 달라 변환 과정에서 손실이 발생한다. 특히 TXT/CSV, 클립보드 교환, 오래된 HWP 문서와의 호환에서 빈번하다.
2.3 글꼴 포함/대체 설정 문제
PDF 저장 시 글꼴 미포함, 인쇄 시 프린터 글꼴 대체, Windows FontSubstitutes 레지스트리 등에 의해 출력 단계에서 다른 글꼴로 바뀌어 특정 기호가 사라질 수 있다.
2.4 수식/개체 엔진 차이
수식 편집기나 OLE 개체가 폰트 내장 방식을 다르게 처리해, 편집 화면과 출력 화면이 달라질 수 있다.
3. 빠른 진단 체크리스트
| 증상 | 가설 원인 | 즉시 확인 | 1차 조치 |
|---|---|---|---|
| 편집화면에 네모(□) | 글리프 부재 | 문자 선택 후 폰트를 ‘Malgun Gothic’, ‘Segoe UI Symbol’, ‘Cambria Math’로 바꿔본다 | 대체 폰트 적용 또는 폰트 묶음 스타일 구성 |
| 붙여넣기 후 물음표(�) | 인코딩 변환 손실 | 붙여넣기 옵션을 ‘형식 없는 텍스트’로 시도 | 붙여넣기 옵션/중간 메모장(UTF-8) 경유 |
| PDF에서만 기호 누락 | 글꼴 미포함 또는 곡선화 미설정 | PDF 옵션에서 글꼴 포함 여부 확인 | ‘글꼴 포함’ 또는 ‘문자 곡선화’ 선택 |
| 인쇄에서만 다른 기호 | 프린터 글꼴 대체 | 프린터 드라이버 고급 옵션 확인 | ‘그래픽으로 처리’, 프린터 글꼴 대체 해제 |
| TXT/CSV 내보내기 후 깨짐 | 인코딩 지정 누락 | 저장 대화상자 인코딩 드롭다운 확인 | UTF-8(BOM) 또는 필요 인코딩 지정 |
4. 원인별 해결 절차
4.1 폰트 글리프 부재 해결
- 문제 문자를 드래그한다.
- 글꼴을 유니코드 범위가 넓은 폰트로 변경한다. 권장: 본문용은 ‘맑은 고딕’, UI 기호는 ‘Segoe UI Symbol’, 수식은 ‘Cambria Math’이다.
- 문자표를 열어 해당 문자의 코드포인트를 확인한 뒤 지원 폰트를 지정한다.
- 스타일로 고정한다. 본문 스타일에 ‘기호 대체 폰트’를 두 번째 우선순위로 지정한다.
4.2 붙여넣기 시 인코딩 손실 대응
- 붙여넣기 단축키 대신 ‘형식 붙여넣기(Ctrl+Alt+V)’를 사용한다.
- 옵션에서 ‘서식 없는 텍스트’ 또는 ‘유니코드 텍스트’를 선택한다.
- 웹 페이지나 PDF에서 복사할 때 중간 단계로 메모장(UTF-8 기본) 또는 코드 편집기(UTF-8)로 붙여넣은 뒤 다시 복사해 한글에 붙인다.
- 붙여넣기 후 즉시 폰트를 기호 지원 폰트로 지정한다.
4.3 PDF 변환·인쇄에서의 글꼴 문제 해결
- PDF 저장 대화상자에서 ‘문서 글꼴 포함’을 활성화한다.
- 특수문자가 많은 문서는 ‘문자를 곡선으로 저장’ 옵션을 사용해 글꼴 의존성을 제거한다.
- 프린터 속성의 고급에서 ‘장치 글꼴 대체’를 끄고 ‘그래픽으로 인쇄’ 옵션을 사용한다.
- 가상 PDF 프린터 사용 시 최신 드라이버로 업데이트한다.
4.4 TXT·CSV·외부 파일 호환 시 인코딩 지정
- 가져오기 시 인코딩을 명시한다. UTF-8, UTF-16LE, EUC-KR(CP949) 중 원본에 맞게 선택한다.
- 내보내기 시도 시에도 인코딩 드롭다운에서 UTF-8(BOM 권장)로 지정한다.
- CSV에 특수문자가 많다면 UTF-8+BOM으로 저장하고 필요 시 Excel 호환을 고려해 구분자와 따옴표 규칙을 점검한다.
예: CSV 저장 규칙 - 인코딩: UTF-8 with BOM - 구분자: 콤마(,) - 텍스트 한정자: 큰따옴표(") - 줄바꿈: CRLF 4.5 Windows 폰트 캐시/대체 설정 초기화
OS 폰트 캐시가 손상되면 특정 문자만 간헐적으로 보이지 않을 수 있다. 다음 절차로 초기화한다.
- 모든 문서 프로그램을 종료한다.
- 서비스에서 ‘Windows Font Cache Service’를 중지한다.
C:\Windows\System32\FNTCACHE.DAT파일을 삭제한다(관리자 권한 필요).- PC를 재부팅한다.
# PowerShell(관리자) 예시 Stop-Service -Name "FontCache" Remove-Item "$env:windir\System32\FNTCACHE.DAT" -Force Start-Process shutdown -ArgumentList "/r /t 0" FontSubstitutes 레지스트리가 비표준 대체를 강제하는 경우 초기화를 검토한다.
# 레지스트리 확인(읽기) reg query "HKLM\SOFTWARE\Microsoft\Windows NT\CurrentVersion\FontSubstitutes" 5. 한글 내 설정 최적화
5.1 문자 입력·문자표 활용
- 입력 > 문자표에서 범주를 ‘기호’, ‘수학 연산자’, ‘그리스 문자’ 등으로 전환해 코드포인트를 확인한다.
- 자주 쓰는 기호는 ‘즐겨찾기’ 또는 사용자 매크로로 등록한다.
- 동일 의미의 유니코드 기호를 우선한다. 예: ●, ○, ★, ✓ 등이다.
5.2 스타일에 폰트 묶음 설계
본문 스타일에 기본 폰트와 기호 대체 폰트를 함께 정의한다. 본문은 가독성 좋은 한글 폰트, 기호는 범용 심볼 폰트를 2순위로 둔다.
권장 예시 - 본문: 맑은 고딕 - 대체1(기호): Segoe UI Symbol - 수식: Cambria Math 5.3 수식 개체 품질
- 수식 편집기 내에서 ‘Cambria Math’나 유니코드 수학 폰트를 사용한다.
- PDF 저장 시 수식은 글꼴 포함 우선, 문제가 지속되면 해당 수식만 벡터로 변환한다.
5.4 붙여넣기 기본 동작 표준화
조직 표준으로 붙여넣기 방식을 지정한다. 기본은 형식 없는 텍스트, 필요 시 서식 유지로 이원화한다. 단축키 매핑을 활용해 실수를 줄인다.
6. 대표 시나리오별 해법
6.1 웹에서 복사한 체크표 기호가 네모로 보임
- 형식 붙여넣기로 ‘유니코드 텍스트’를 선택한다.
- 선택 영역 폰트를 ‘Segoe UI Symbol’로 바꾼다.
- 체크표는 유니코드 U+2713(✓), U+2714(✔)로 교체한다.
6.2 PDF 변환 시 그리스문자(α, β)가 사라짐
- 문서 저장 > PDF 옵션에서 ‘글꼴 포함’을 켠다.
- 문제 구간만 선택해 ‘문자를 곡선으로 저장’을 적용한다.
- 폰트를 ‘Cambria’, ‘Times New Roman’, ‘맑은 고딕’ 등 범용 폰트로 교체한다.
6.3 CSV 내보내기 후 특수문자가 물음표로
- 내보내기 인코딩을 ‘UTF-8(BOM)’로 지정한다.
- 데이터에 구분자(,)가 포함되면 따옴표로 감싸도록 옵션을 설정한다.
- 상대 시스템의 가져오기 인코딩도 UTF-8로 맞춘다.
6.4 프린터로 출력 시 수학기호가 각진 사각형
- 프린터 속성 > 고급에서 장치 글꼴 대체를 해제한다.
- 드라이버를 최신 PCL/PS 버전으로 교체한다.
- 문제 페이지를 PDF로 출력 후 PDF에서 인쇄한다.
7. 품질 보증 절차(팀 적용용 SOP)
- 작성 단계: 유니코드 기호만 사용, 스타일에 대체 폰트 포함, 수식에 Cambria Math 지정한다.
- 검수 단계: PDF(글꼴 포함)와 인쇄 미리보기로 교차 검증한다.
- 배포 단계: 필요 시 곡선화 PDF를 별도 보관본으로 생성한다.
- 보전 단계: 폰트 버전과 프린터 드라이버 버전을 문서 하단 주석으로 기록한다.
8. 자주 쓰는 특수문자 안전 대체표
| 의미 | 권장 유니코드 | 코드포인트 | 비고 |
|---|---|---|---|
| 체크 | ✓ | U+2713 | 대체: ✔(U+2714) |
| 곱셈 | × | U+00D7 | ‘x’와 혼동 금지 |
| 나눗셈 | ÷ | U+00F7 | 수식 폰트 필요 |
| 무한대 | ∞ | U+221E | 수학 기호 |
| 대쉬 | – | U+2013 | 하이픈(-)과 구분 |
| 불릿 | • | U+2022 | Wingdings 불릿 지양 |
| 도 | ° | U+00B0 | 수치 뒤 결합 |
| 그리스 알파 | α | U+03B1 | 영문 a와 구분 |
| 마이크로 | µ | U+00B5 | μ(U+03BC)와 구분 |
| 원문자 R | Ⓡ | U+24C7 | 폰트 의존 높음 |
9. 대량 치환·정리 작업 팁
- 찾기/바꾸기에서 코드포인트 기반 입력이 어렵다면 ‘문자표’로 직접 삽입 후 복사해 바꾸기를 수행한다.
- Wingdings/Webdings를 사용한 기호는 동일 의미 유니코드 기호로 일괄 치환한다.
- 불명확한 기호는 이미지 캡처가 아닌 텍스트 기호로 재작성해 검색성과 접근성을 보장한다.
10. 점검 자동화 스니펫
# PowerShell: 설치 폰트 중 수학·기호 폰트 존재 여부 샘플 점검 $need = @("Cambria Math","Segoe UI Symbol","Noto Sans Symbols","Noto Sans Math") $installed = (Get-ChildItem "$env:windir\Fonts").Name $need | ForEach-Object { $found = $installed -match $_ "{0}: {1}" -f $_, ($(if($found){"OK"}else{"Missing"})) } 11. 예방 가이드라인
- 조직 공통 템플릿에 대체 폰트 체인을 포함한다.
- 문서 공유 전 PDF를 글꼴 포함으로 생성해 수신자 환경에 의존하지 않도록 한다.
- 외부 데이터 연계는 UTF-8을 표준으로 통일한다.
- 정기적으로 프린터 드라이버와 시스템 폰트를 업데이트한다.
FAQ
편집 화면은 정상인데 PDF에서만 특수문자가 빠지는 이유는 무엇인가?
PDF 저장 시 글꼴을 포함하지 않거나 프린터 글꼴로 대체되면서 해당 글리프가 누락되었기 때문이다. PDF 옵션에서 글꼴 포함을 활성화하고, 문제가 반복되면 문제 구간을 ‘문자 곡선화’로 생성한다.
Wingdings로 만든 체크표를 그대로 써도 되나?
문서 간 호환성이 떨어진다. 유니코드 체크마크(✓/✔)로 치환하고, 심볼 지원 폰트를 대체로 지정하는 것이 안전하다.
CSV에서 한글과 특수문자를 함께 안전하게 다루는 방법은?
UTF-8(BOM)으로 저장하고, 구분자 충돌을 피하기 위해 텍스트 한정자(큰따옴표)를 사용한다. 가져오기 시스템에서도 UTF-8로 읽도록 맞춘다.
수식에서 그리스문자가 가끔 다른 글꼴로 치환되는 이유는?
수식 엔진이 폰트 우선순위에 따라 대체하는 과정에서 발생한다. 수식 폰트를 Cambria Math로 고정하고 PDF 생성 시 글꼴 포함을 보장한다.
특정 PC에서만 네모(□)가 보이면 어떻게 하나?
Windows 폰트 캐시 손상 가능성이 있다. FontCache 서비스 중지 후 FNTCACHE.DAT를 삭제하고 재부팅한다. 문제가 지속되면 해당 폰트를 재설치한다.