dart-app-core/agent-ops/rules/project/domain/charset/rules.md
2026-05-19 10:27:12 +09:00

1.4 KiB

charset

목적 / 책임

EUC-KR, CP949, Shift-JIS, GBK, UTF 계열 등 문자셋 변환과 코드 페이지 매핑을 담당한다.

포함 경로

  • lib/charset/ — 문자셋별 구현과 매핑 테이블
  • lib/charset.dart — 문자셋 공개 API
  • lib/cp949.dart — CP949 관련 top-level API
  • lib/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 도메인에 직접 추가하지 않는다.