作者: Bruce.
日時: 2006/9/12(17:30)
Bruce.です。

即座の返事ありがとうございます.

Yukihiro Matsumoto writes:

> |ただ、エンコーディングごとに「漢字」の範囲が違うとかいやらしいところも
> |ありますがこういう意見もあるということで一つ。
> 
> これは多分ユーザメソッドで定義されると思いますから、純粋にそ
> のようなメソッドを用意するかどうかだけではないかと思います。
> 
>   "abc#{uc"HALFWIDTH KATAKANA KA"}def"
> 
> のようなのをイメージしてください。ここではucが(uppercase(大
> 文字)ではなくunicode characterのつもり)文字名から文字を得る
> メソッドになります。

なるほど。
納得しました。

> |あと、これは小迫さんに云うべきことかもしれませんが、Perl 5.8.5から
> |使えるようになった、ユーザー定義の文字クラス \p{...} (...の部分の
> |名前とそれが表す集合をユーザーが定義できる)が欲しいです。
> |鬼車単体では難しいと思うのでまつもとさんにも意見表明。
> 
> 鬼車単体では難しいのかもしれませんが、やはり鬼車側がイニシア
> チブをとらないと実現しないと思いますから、小迫さんが見てると
> ころで話すのがよいのではないかと思います。

小迫さんにもどこかで話を切り出そうとは前から思っていて、タイミングを
見計らっていたところなので、小迫さんが見ているところで、というのは
了解です。

#今の ruby-dev の空気の流れだとちょっと切り出しづらいなあとか

小迫さんのはてなのページとか、直メールとかで話を出してみます
(今すぐにはやらないと思いますが)。

> |それから質問が一つ。
> |
> |  s = "abc\p{HALFWIDTH KATAKANA KA}def"
> |
> |というASCII文字列があり(\p{…}は半角カナ文字を指定していると考えてください)、
> |tounicode とかいうメソッド(があったとして)を送ると
> |
> |   uni = s.unicode
> |
> |その結果はどうなるのでしょうか?
> 
> 正直なところ、質問の内容が定かではなくて答えようがないんです
> が、仮定を積み重ねると、"abc\p{HALFWIDTH KATAKANA KA}def"と
> いうものが私の考えているものと同じものであれば、文字列の中に
> 半角カナを含んでいる以上すでにASCII文字列ではないんではない
> かと。その文字列のエンコーディングがUnicode(たとえばUTF-8)で
> あったとするならば、tounicodeメソッドは「なにもしない」んじゃ
> ないでしょうか。

あー要領を得ない質問で申し訳ないです。

Unicodeでない文字列で "abc\p{HALFWIDTH KATAKANA KA}def" と書いたとしても
Unicodeのキャラクタの名前表記は解釈されないわけですよね?(確認1)

で、そのようにUnicode特有のエスケープシーケンス表記(でいいのか?)を
含んだUnicode以外の文字列をUnicodeに変換しようとしたとき、その変換
ルーチンは、エスケープシーケンスをどのように解釈するのか?(確認2)
#上記の返事を見るに「なにもしない」ようですが

ということなんですが、こんどはわかってもらえましたでしょうか?

いじょ。