1.4 KiB
1.4 KiB
charset
목적 / 책임
EUC-KR, CP949, Shift-JIS, GBK, UTF 계열 등 문자셋 변환과 코드 페이지 매핑을 담당한다.
포함 경로
lib/charset/— 문자셋별 구현과 매핑 테이블lib/charset.dart— 문자셋 공개 APIlib/cp949.dart— CP949 관련 top-level APIlib/code_map.dart— 코드 매핑 공통 데이터
제외 경로
lib/subtitle/— 자막 포맷 파싱 책임lib/platform/— 파일/플랫폼 접근 책임
주요 구성 요소
charset.dart— 문자셋 API 진입점code_page.dart— 코드 페이지 추상화euc_kr.dart,euc_jp.dart,shift_jis.dart,gbk.dart— 문자셋별 변환 구현*_table.dart,*_map.dart— 매핑 데이터
유지할 패턴
- 매핑 테이블은 의미 있는 변경만 수행하고 자동 포맷에 의한 대량 diff를 피한다.
- 새 문자셋을 추가할 때 공개 API 파일과 테스트 추가 여부를 함께 확인한다.
다른 도메인과의 경계
- subtitle: 자막 내용의 인코딩 처리가 필요해도 포맷 파싱 로직은 subtitle에 둔다.
- platform-utilities: 파일 읽기/쓰기나 플랫폼별 byte 접근은 platform-utilities에 둔다.
금지 사항
- 문자셋 테이블을 근거 없이 재정렬하지 않는다.
- 플랫폼별 파일 접근 코드를 charset 도메인에 직접 추가하지 않는다.