################################################################################
# Jacode 치트시트 (KO)
# Jacode - 일본어 문자 코드 변환 Perl 프로그램
# https://metacpan.org/dist/Jacode
# Copyright (c) 2018, 2019, 2020, 2022, 2023, 2026 INABA Hitoshi <ina@cpan.org>
################################################################################

■ 설치

  cpanm Jacode

  또는 https://metacpan.org/pod/Jacode 에서 Jacode.pm 과 jacode.pl 을
  다운로드하여 같은 디렉터리에 저장합니다.

■ 사용법

  use FindBin;
  use lib "$FindBin::Bin/lib";
  use Jacode;

■ API

  # 문자열을 제자리(in-place)에서 변환（가장 기본적인 사용법）
  Jacode::convert(\$line, $OUTPUT_encoding, $INPUT_encoding);
  Jacode::convert(\$line, $OUTPUT_encoding, $INPUT_encoding, $option);

  # 반환값（리스트 컨텍스트）
  ($subref, $got_INPUT_encoding) = Jacode::convert(\$line, $OUT, $IN);

  # 반환값（스칼라 컨텍스트）
  $got_INPUT_encoding = Jacode::convert(\$line, $OUT, $IN);

  # 값 반환 래퍼 함수
  $out = Jacode::jis($str);
  $out = Jacode::euc($str);
  $out = Jacode::sjis($str);
  $out = Jacode::utf8($str);

  # 인코딩 감지
  $encoding = Jacode::getcode(\$line);
  ($matched_length, $encoding) = Jacode::getcode(\$line);

  # JIS 이스케이프 시퀀스 제어
  ($esc_DBCS, $esc_ASCII) = Jacode::get_inout($line);
  ($esc_DBCS_fully, $esc_ASCII_fully) = Jacode::jis_inout([$esc_DBCS [, $esc_ASCII]]);

  # 초기화
  Jacode::init();

  # 캐시 제어
  Jacode::cache();
  Jacode::nocache();
  Jacode::flushcache();

■ 인코딩 이름

  'jis'   ... JIS（ISO-2022-JP）
  'sjis'  ... Shift_JIS（CP932 포함）
  'euc'   ... EUC-JP
  'utf8'  ... UTF-8
  'binary'... 바이너리（변환 불가）

■ 옵션

  'z'  ... 반각 가나 → 전각 가나（h2z）
  'h'  ... 전각 가나 → 반각 가나（z2h）

■ JIS 한자 시작 시퀀스

  '@'  ... ESC $ @    JIS C 6226-1978
  'B'  ... ESC $ B    JIS X 0208-1983（기본값）
  '&'  ... ESC & @ ESC $ B  JIS X 0208-1990
  'O'  ... ESC $ ( O  JIS X 0213:2000 면1
  'Q'  ... ESC $ ( Q  JIS X 0213:2004 면1

■ 변환 예시

  # Shift_JIS → UTF-8
  Jacode::convert(\$line, 'utf8', 'sjis');

  # EUC-JP → Shift_JIS
  Jacode::convert(\$line, 'sjis', 'euc');

  # 입력 자동 감지, JIS 출력
  Jacode::convert(\$line, 'jis');

  # 반각 가나 변환하면서 SJIS → UTF-8
  Jacode::convert(\$line, 'utf8', 'sjis', 'z');

  # 파일 전체 행 변환
  while (<IN>) {
      Jacode::convert(\$_, 'utf8', 'sjis');
      print OUT $_;
  }

■ 커맨드라인（pkf 모드）

  perl jacode.pl [옵션] [-[입력]출력] 파일

  perl jacode.pl file          # JIS 로 변환
  perl jacode.pl -sw file      # Shift_JIS → UTF-8
  perl jacode.pl -es file      # EUC-JP → Shift_JIS
  perl jacode.pl -me file      # 혼합 인코딩 파일 → EUC-JP（동적 감지）
  perl jacode.pl -mc file      # 변환하면서 각 행의 인코딩 이름 출력

  옵션:
  -b  버퍼링 출력（기본값）
  -u  비버퍼링 출력
  -m  동적 입력 인코딩 인식
  -c  인코딩 이름 출력
  -Z  반각 가나 → 전각 가나
  -H  전각 가나 → 반각 가나
  -f [unix|mac|dos]  줄 끝 문자 변환

■ jcode.pl 호환성

  Jacode 는 Utashiro 의 jcode.pl 과 호환됩니다.
  jcode:: 네임스페이스 별칭도 사용 가능합니다.

################################################################################
