From: Yui NARUSE Date: 2010-03-03T10:39:44+09:00 Subject: [ruby-dev:40540] [Feature #2833] 絵文字エンコーディングの提案 チケット #2833 が更新されました。 (by Yui NARUSE) > 以下のような fallback つきのコンバータを標準で提供しておけば、 > 個々のニーズについては fallback 変換表を gem で配布してもらうだけ > 済むかもしれません。 String#encode(to, from, opt) の opt[:replace] に Hash を与えられるようにして、 そこに、変換元 encoding の文字 => 変換先の文字、という未定義文字の fallback 変換表を与えられるようにする、 というものを今考えています。 これだと例えば、 fallbacks = { ?\uE6AD => "[ふくろ]", ?\u{1F4BA} => "[いす]" } "\u{3042 E6AD 1F4BA}".encode("UTF8-KDDI", replace: fallbacks) #=> "あ[ふくろ][いす]" ちなみに、現状でやるならば、次のような感じでしょうか "\u{3042 E6AD 1F4BA}".gsub(/[#{Regexp.escape(fallbacks.keys.join)}]/, fallbacks).encode("UTF8-KDDI") #=> "あ[ふくろ][いす]" > - UTF8-DoCoMo > - UTF8-KDDI > - UTF8-SoftBank > この3つは、utf-8-macのように、utf-8に変換ルールヒントを加えたもの > という理解でいいのでしょうか? > 3社でPUAの使い方が違う?? UTF8-MAC ではなくて、各社の端末で現在使われている、「UTF-8」がそれらです。 つまり、文字集合としてはJIS+一部拡張+絵文字で、絵文字の割当先のPUAも異なります。 また、実際問題としても一部KDDIとSoftBankの使用領域が被っているので異なりますね。 具体的にどこになにがいるかは、以下の表で眺められます。 http://www.unicode.org/~scherer/emoji4unicode/snapshot/full.html > > > - stateless-ISO-2022-JP-KDDI > > > > stateless iso-2022というのが、どういう状況で使うのか想像できないので > > 解説をお願いしていいですか? > > これは内部で使われているだけなので、表に名前を出す必要はなかったですね。 > > 現状では ISO-2022-JP <-> EUC-JP の変換が stateless-ISO-2022-JP を介した > 変換で実現されています。stateless-ISO-2022-JP-KDDI は、 > ISO-2022-JP-KDDI <-> UTF8-KDDI の変換でこれを真似したために存在しています。 まぁ、完全に実装の都合ですね。 > なるほど、私もそう思います。達人出版会の出番ですね! あと、るりまとかるびまとか。 > > # それを言ったら日本語コード変換は全般的に罠の宝庫なので「日本語コード変換HOWTO」 > > # が必要だ。という気も若干してきますが、発散するので気づかなかったことに > > 私はなにも見ていません。 「Ruby M17N の設計と実装」の改訂版で触れるつもりではあるんですが、いつになるだろう。 http://jp.rubyist.net/magazine/?0025-Ruby19_m17n#l76 > > とりあえず、Encodingクラスのリファレンスに加筆する予定の、エンコーディングの > > 説明を見せて頂けると、レビューしやすいです。 > > きっと、コード本体については誰も反対しないんだろうし。 > > > るりまの以下のページにある定数表のことですよね? > http://doc.okkez.net/192/view/class/Encoding いい指摘ですね、たぶんるりまじゃなくて rdoc の話なんじゃないでしょうか。 で、今、Encoding クラスの rdoc ってありませんね。 すんません、今度書きます。 > --- Encoding::ISO_2022_JP_KDDI > KDDI 携帯の絵文字を含む ISO-2022-JP の亜種です。 そういえば、これっていわゆる半角カナとかマイクロソフト標準キャラクタセットの 機種依存文字とかって扱えなくていいんですかね。 CP50221 のレプリカである必要があるような、CP932 拡張部分はいらないような ---------------------------------------- http://redmine.ruby-lang.org/issues/show/2833 ---------------------------------------- http://redmine.ruby-lang.org