# moon_encoding 演示实录（与 docs/demo.gif 由同一脚本生成）
# 全部输出来自真实命令的真实 stdout/stderr，退出码如实记录；
# 本机用户路径已脱敏；不含时间戳，可复现。生成方式：
#     python tools/make_demo.py

$ moon run cmd/main -- list
支持 37 种编码（WHATWG 规范名）:
  IBM866
  ISO-8859-2
  ISO-8859-3
  ISO-8859-4
  ISO-8859-5
  ISO-8859-6
  ISO-8859-7
  ISO-8859-8
  ISO-8859-8-I
  ISO-8859-10
  ISO-8859-13
  ISO-8859-14
  ISO-8859-15
  ISO-8859-16
  KOI8-R
  KOI8-U
  macintosh
  windows-874
  windows-1250
  windows-1251
  windows-1252
  windows-1253
  windows-1254
  windows-1255
  windows-1256
  windows-1257
  windows-1258
  x-mac-cyrillic
  GBK
  gb18030
  Big5
  Shift_JIS
  EUC-JP
  EUC-KR
  UTF-8
  UTF-16BE
  UTF-16LE
[exit 0]

$ printf '\xd6\xd0\xce\xc4' > _build/d/cn.bin
[exit 0]

$ printf '\xa7\x41\xa6\x6e' > _build/d/hant.bin
[exit 0]

$ printf '\x93\xfa\x96\x7b\x8c\xea' > _build/d/ja_sjis.bin
[exit 0]

$ printf '\xc6\xfc\xcb\xdc\xb8\xec' > _build/d/ja_euc.bin
[exit 0]

$ printf '\xc7\xd1\xb1\xb9\xbe\xee' > _build/d/ko.bin
[exit 0]

$ printf '\xff\xfe\x41\x00\x3d\xd8\x00\xde' > _build/d/u16.bin
[exit 0]

$ printf '\xe4\xb8\xad\xe6\x96\x87' > _build/d/zh.txt
[exit 0]

$ moon run cmd/main -- decode gbk _build/d/cn.bin _build/d/cn.txt
已写入: _build/d/cn.txt（2 字符，UTF-8）
[exit 0]

$ xxd -p _build/d/cn.txt
e4b8ade69687
[exit 0]

$ moon run cmd/main -- encode gb18030 _build/d/cn.txt _build/d/cn2.bin
已写入: _build/d/cn2.bin（4 字节，gb18030）
[exit 0]

$ cmp _build/d/cn.bin _build/d/cn2.bin && echo 'OK: byte-identical'
OK: byte-identical
[exit 0]

$ moon run cmd/main -- decode big5 _build/d/hant.bin _build/d/hant.txt
已写入: _build/d/hant.txt（2 字符，UTF-8）
[exit 0]

$ moon run cmd/main -- decode shift_jis _build/d/ja_sjis.bin _build/d/ja1.txt
已写入: _build/d/ja1.txt（3 字符，UTF-8）
[exit 0]

$ moon run cmd/main -- decode euc-jp _build/d/ja_euc.bin _build/d/ja2.txt
已写入: _build/d/ja2.txt（3 字符，UTF-8）
[exit 0]

$ moon run cmd/main -- decode euc-kr _build/d/ko.bin _build/d/ko.txt
已写入: _build/d/ko.txt（3 字符，UTF-8）
[exit 0]

$ moon run cmd/main -- decode utf-16le _build/d/u16.bin _build/d/u16.txt
已写入: _build/d/u16.txt（4 字符，UTF-8）
[exit 0]

$ xxd -p _build/d/u16.txt
efbbbf41f09f9880
[exit 0]

$ moon run cmd/main -- decode no-such-label _build/d/cn.bin _build/d/x.txt
解码失败: UnknownLabel("no-such-label")
(stderr) RuntimeError: unreachable
[exit 1]

$ moon run cmd/main -- decode iso-2022-jp _build/d/cn.bin _build/d/x.txt
解码失败: UnsupportedEncoding("ISO-2022-JP")
(stderr) RuntimeError: unreachable
[exit 1]

$ moon run cmd/main -- encode windows-1252 _build/d/zh.txt _build/d/zh.bin
编码失败: Unmappable(20013, 0)
(stderr) RuntimeError: unreachable
[exit 1]

$ moon run cmd/main -- encode utf-16le _build/d/cn.txt _build/d/x.bin
编码失败: UnsupportedEncoding("UTF-16LE")
(stderr) RuntimeError: unreachable
[exit 1]

$ moon test
Total tests: 147, passed: 147, failed: 0.
[exit 0]

