すでにRuby内での正規名としてIANA名を用いる仕組みがあるので、
わざわざ俗称を推奨するようなことをする必然性が
シンボルであるということには無いように感じます。

08/08/06 に take_tk<ggb03124 / nifty.com> さんは書きました:
> たけ(tk)です
>
> [ruby-dev:35773] Re: 文字コードがシンボルでないのは何故? にて
> Nobuyoshi Nakada <nobu / ruby-lang.org> さん曰く:
>
>> シンボルリテラルには(クォートしない限り)使えない文字が、エンコー
>> ディング名にはしばしば使われているからです。
>>
>> > :euc_jp とか :utf_8 とか :shift_jis などのような、小文字+アンダースコア
>> > 型のシンボルのほうがIDらしくて良いような気がするのですが・・。
>>
>> その例でいうと、:shift_jis以外は有効なエンコーディング名ではあり
>> ません。
>
> (a)《世に通用している様々なエンコーディング名》、と
> (b)《Rubyにおけるエンコーディングの識別名》(Encodingクラスの識別名)
>
> とを分離する、という提案でもあります。
>
> (a)《世に通用している様々なエンコーディング名》は文字列にして
> (b)《Rubyにおけるエンコーディングの識別名》はシンボルにすべし
>
> 《Rubyにおけるエンコーディングの識別名》というのは、Encodingクラスのサブ
> クラスまたはその複製(replicate)の識別名であり、サブクラスまたはその複
> 製と1対1で対応するもの。
>
> 《Rubyにおけるエンコーディングの識別名》は《正式なエンコーディング名》で
> ある必要はない。Encodingクラスのサブクラスの名前の小文字化という機械的な
> 命名でもよい。
>
> 《Rubyにおけるエンコーディングの識別名》は識別名なのでシンボルであるのが
> 望ましく、また《世に通用している様々なエンコーディング名》とは概念的に区
> 別する意味でも文字列でないほうが望ましい。
>
> それに対して、
>
> 《世に通用している様々なエンコーディング名》においては、シンボルリテラル
> には(クォートしない限り)使えない文字が使われているので文字列で記述するの
> が妥当。
>
> 《世に通用している様々なエンコーディング名》においては、同一のエンコーディ
> ングに複数の名前が使われているのでハッシュテーブルを用意しておく必要があ
> る。
>
>> >  *   Encoding.aliases
>> >  *   => {"BINARY"=>:ascii_8bit, "ASCII"=>:us_ascii,
>> > "ANSI_X3.4-1986"=>us_ascii,
>> >  *       "SJIS"=>:shift_jis, "eucJP"=>:euc_jp, "CP932"=>:windows_31j}
>>
>> 意図がよくわかりませんが、なぜ片方だけ文字列のままなんでしょうか。
>
> aliases を持ち出したのは、《世に通用している様々なエンコーディング名》か
> ら《Rubyにおけるエンコーディングの識別名》への変換を考えていたからです。
>
> なので、{《正式名》の文字列 => 《Rubyにおけるエンコーディングの識別名》
> のシンボル}というデータも必要になります。
>
> *   Encoding.aliases
> *   => {"ASCII-8BIT"    => :ascii_8bit,   # 正式名=>識別名
>         "BINARY"        => :ascii_8bit,
>         "US-ASCII"      => :us_ascii,     # 正式名=>識別名
>         "ASCII"         => :us_ascii,
>         "ANSI_X3.4-1986"=> :us_ascii,
>         "Shift-JIS"     => :shift_jis,    # 正式名=>識別名
>         "SJIS"          => :shift_jis,
>         "EUC-JP"        => :euc_jp,       # 正式名=>識別名
>         "eucJP"         => :euc_jp,
>         "Windows-31J"   => :windows_31j,  # 正式名=>識別名
>         "CP932"         => :windows_31j }
> 《世に通用している様々なエンコーディング名》
>                         => 《Rubyにおけるエンコーディングの識別名》
>
> http://svn.ruby-lang.org/repos/ruby/trunk/enc/shift_jis.c
>
> ENC_ALIAS("Shift_JIS",    "shift_jis") /* 正式名 => 識別名 */
> ENC_ALIAS("SJIS",         "shift_jis")
>
> ENC_ALIAS("Windows-31J",  "windows_31j")  /* 正式名 => 識別名 */
> ENC_ALIAS("CP932",        "windows_31j")
> ENC_ALIAS("csWindows31J", "windows_31j")
>
> ENC_ALIAS("MacJapanese", "mac_japanese")   /* 正式名 => 識別名 */
> ENC_ALIAS("MacJapan",    "mac_japanese")
>
> * ENC_ALIASの第二引数はシンボル《Rubyにおけるエンコーディングの識別名》
> * 第一引数は《世に通用している様々なエンコーディング名》の文字列
>
> ENC_REPLICATE("windows_31j",  "shift_jis") /* 識別名シンボルで複製 */
>
> ENC_REPLICATE("mac_japanese", "shift_jis") /* 識別名シンボルで複製 */
>
> * ENC_REPLICATEは、両方ともシンボル《Rubyにおけるエンコーディングの識別名》
>
> Take_tk = KUMAGAI Hidetake
> たけ(tk)=熊谷秀武
>
>
>


-- 
-- 
成瀬ゆい
naruse / airemix.jp