なかだです。

At Thu, 13 Dec 2007 02:07:11 +0900,
Hidetoshi NAGAI wrote in [ruby-dev:32560]:
> では,encoding 指定がない,あるいは不明な場合は,
> 必ず default_external になると考えていいのでしょうか?
> で,default_external が ASCII-8BIT に設定されることはないと.

LANGがセットされていなかったり、対応していないエンコーディングが
指定されていれば、ASCII-8BITになります。

> # Martin さんのメール [ruby-dev:32554] の通りだとすると,
> # 嬉しくない形で ASCII-8BIT になってしまうケースがあるように見えます.

スクリプトエンコーディングの話ですから、別だと思います。

> # そうであるなら,やはり安全確実な binary data のための encoding が
> # 欲しいと感じます.

必要そうですね。

> それはそれとして...
> Ruby での encoding 名と Tk での encoding 名とで
> 対応表を用意しておく必要があるかもと思っています.
> Tcl/Tk の lsort [encoding names] の結果は
> ----------------------------------------------------------------------
> ascii big5 cp1250 cp1251 cp1252 cp1253 cp1254 cp1255 cp1256 cp1257
> cp1258 cp437 cp737 cp775 cp850 cp852 cp855 cp857 cp860 cp861 cp862
> cp863 cp864 cp865 cp866 cp869 cp874 cp932 cp936 cp949 cp950 dingbats
> ebcdic euc-cn euc-jp euc-kr gb12345 gb1988 gb2312 gb2312-raw identity
> iso2022 iso2022-jp iso2022-kr iso8859-1 iso8859-10 iso8859-13
> iso8859-14 iso8859-15 iso8859-16 iso8859-2 iso8859-3 iso8859-4
> iso8859-5 iso8859-6 iso8859-7 iso8859-8 iso8859-9 jis0201 jis0208
> jis0212 koi8-r koi8-u ksc5601 macCentEuro macCroatian macCyrillic
> macDingbats macGreek macIceland macJapan macRoman macRomania macThai
> macTurkish macUkraine shiftjis symbol tis-620 unicode utf-8
> ----------------------------------------------------------------------
> という感じなのですが,Ruby の m17n ではどうなりそうでしょうか?

onigurumaと同じになるはずです。

$ l enc
ascii.c    iso8859_1.c   iso8859_2.c  iso8859_9.c  utf32_be.c
big5.c     iso8859_10.c  iso8859_3.c  koi8.c       utf32_le.c
cp1251.c   iso8859_11.c  iso8859_4.c  koi8_r.c     utf8.c
euc_jp.c   iso8859_13.c  iso8859_5.c  sjis.c
euc_kr.c   iso8859_14.c  iso8859_6.c  unicode.c
euc_tw.c   iso8859_15.c  iso8859_7.c  utf16_be.c
gb18030.c  iso8859_16.c  iso8859_8.c  utf16_le.c

まだほとんど手つかずですが。

-- 
--- 僕の前にBugはない。
--- 僕の後ろにBugはできる。
    中田 伸悦