본질
Task #509 영역 진행 중 발견 — Supplementary PUA-A (U+F02B0~F02FF) 의 SVG 출력 영역 누락.
현상
map_pua_bullet_char 함수 영역 매핑 정확:
- U+F02B1
F02B9 → ① ~ ⑨ (U+2460U+2468)
- U+F02EF → · (U+00B7, Middle dot)
- 단위 테스트 5/5 통과 (
pua_mapping_tests)
- 한컴 2022 편집기 영역에서 본 영역 모두 정상 출력 (한컴 PDF 정답지 캡처 확인)
- rhwp 의 SVG 출력 영역에서 본 영역 모두 누락 — text 요소 자체 영역 부재
재현 영역
cargo run --bin rhwp -- gen-pua samples/pua-test.hwp
cargo run --bin rhwp -- export-svg samples/pua-test.hwp -o output/svg/pua-test/
python3 -c \"
with open('output/svg/pua-test/pua-test.svg', 'r') as f: raw = f.read()
print('· (U+00B7) count:', raw.count('·')) # 0 — 누락 영역
print('① count:', raw.count('①')) # 0 — 누락 영역
\"
추정 원인
Supplementary Plane (U+F0000~U+10FFFF) 의 코드포인트는 UTF-16 영역에서 surrogate pair (4 byte) 영역. BMP 영역의 single u16 영역과 영역 차이.
추정 결함 영역:
parse_para_text (src/parser/body_text.rs:353) 의 surrogate pair 디코딩 영역 — 정합 영역
paragraph_layout.rs 의 char_offsets ↔ chars() 정합 영역 — UTF-16 unit 영역 (Supplementary 는 2 unit) ↔ Rust char 영역 (Supplementary 는 1 char) 영역의 정합 결함 추정
- 본 영역에서 character_positions / cluster 분할 단계의 영역에서 Supplementary 영역이 영역 누락
진단 도구 영역
gen-pua 영역 (Task #509 영역에서 추가) 의 영역에서 18 종 PUA 코드포인트 영역 검증 영역 활용 가능:
- 본 영역에서 BMP 영역 (U+0F076~U+0F0FE) 은 정상 영역 출력
- Supplementary 영역 (U+F02B1~U+F02EF) 은 영역 누락
영향 영역
| 샘플 |
사용 codepoint |
회수 |
| mel-001 |
U+F02B1~F02B9 |
12 |
| kps-ai |
U+F02B1, F02B2 |
6 |
| KTX |
U+F02EF |
4 |
메모리 정합
우선순위
본 영역 결함은 KTX/mel-001/kps-ai 샘플 영역 시각 영역 회귀 영역 — 본 영역 정합 영역 정정 영역 권장.
관련 영역
본질
Task #509 영역 진행 중 발견 — Supplementary PUA-A (U+F02B0~F02FF) 의 SVG 출력 영역 누락.
현상
map_pua_bullet_char함수 영역 매핑 정확:F02B9 → ① ~ ⑨ (U+2460U+2468)pua_mapping_tests)재현 영역
추정 원인
Supplementary Plane (U+F0000~U+10FFFF) 의 코드포인트는 UTF-16 영역에서 surrogate pair (4 byte) 영역. BMP 영역의 single u16 영역과 영역 차이.
추정 결함 영역:
parse_para_text(src/parser/body_text.rs:353) 의 surrogate pair 디코딩 영역 — 정합 영역paragraph_layout.rs의char_offsets↔chars()정합 영역 — UTF-16 unit 영역 (Supplementary 는 2 unit) ↔ Rust char 영역 (Supplementary 는 1 char) 영역의 정합 결함 추정진단 도구 영역
gen-pua영역 (Task #509 영역에서 추가) 의 영역에서 18 종 PUA 코드포인트 영역 검증 영역 활용 가능:영향 영역
메모리 정합
feedback_pdf_not_authoritative정합 — 단 본 task 의 한컴 정답지는 작업지시자 직접 영역 캡처feedback_hancom_compat_specific_over_general정합 — 매핑 표 영역은 case-by-case 영역 정정 (Task draw_text 의 PUA 강제 변환 회귀 — 일반 텍스트의 원문자/특수문자 영역 결함 (PR #251 origin) #509 영역에서 적용)우선순위
본 영역 결함은 KTX/mel-001/kps-ai 샘플 영역 시각 영역 회귀 영역 — 본 영역 정합 영역 정정 영역 권장.
관련 영역