From: "NARUSE, Yui" Date: 2007-12-12T02:49:09+09:00 Subject: [ruby-dev:32542] Ruby の知らない encoding、あれ以外の encoding 成瀬です。 Yukihiro Matsumoto wrote: > |> Encoding.unknown? > |> > |> のような代用品フラグを提供することです。 > | > |レプリカエンコーディングはbased_encodingがnon-nil を返しますから、 > |一応それで区別はできます。 > > そーかあ、それで十分かなあ。 [ruby-dev:32456] を蒸し返すと、 * Ruby 処理系として対応しているエンコーディングの別名は、  対応しているエンコーディングのレプリカ (CP932 は Shift_JIS のレプリカ) * Ruby 処理系として対応していないエンコーディングは、  ASCII-8BIT のレプリカ (UTF-16 等) という方針でいいのでしょうか。 また、based_encoding が ASCII-8BIT ならば Ruby M17N が対応していないエン コーディングであると考えていいのでしょうか。 newstr = str.encode("some-encoding") if newstr.encoding.based_encoding == Encoding::ASCII_8BIT raise "ruby doesn't support " + newstr.encoding.to_s end >> 名前に >> >> "iso-2022-jp (unknown)" >> >> のような文字列を含むのも良いかもしれません。ただし、 >> 「unknown」よりももっとふさわしい単語がありそうですけど。 > > |名前からEncodingへの対応が面倒なことになりそうな気がします。 > > Encoding名とto_s表現を分離するとか。 to_s に余計な文字列が入っていると、XML のエンコーディング名等で to_s に 出力したり、Iconv 等に渡ったときに厄介そうです。 -- NARUSE, Yui DBDB A476 FDBD 9450 02CD 0EFC BCE3 C388 472E C1EA