作者: Bruce.
日時: 2008/6/28(04:18)
Bruce.です。

davi さんは書きました (2008/06/28 3:54):

>> 文字種ごとのバイト幅とか 
> 
> 半角英数、全角カナを昔のJPerlはjlengthとか書いたけど、今はそんな
> 必要はない、という件。

ああなるほど。
でもUTF-8(Unicode)だと半角カナは3バイトになるのでは?

>> shiftを利用ってどういうことでしょう?
> 
> for in do みたいに比較対象を一つずつずらしてゆく、という処理は、
> Yささんもお書きですが、その後にある、
> 
>> 2バイト文字がうまく扱えなかったので、
>>> substr($0,i,1) substr($0,i+1,1)
>> 超適当に1バイトずつ処理しました
> 
> の所をもう少し「1文字」を処理系の側でキチンと認識してくれる
> ような書き方ってできないもんかな、というような気持ちなんですが。
> 
> そうでないと、Ext.Bの処理も盛り込もうとすると、困るだろうなぁと。
> 
>  # あ、これが「複雑にしすぎる」ってヤツなんでしょうね。
>  # ロシア人の会議好き、みたいな性格なんでしょう。
>  # 達成されない五カ年計画の連続。

あー、単位がきちんと「バイト」じゃなくて「文字」でということなら
きちんとエンコーディングを処理してやればPerlでもPythonでもできますがな。
ただし自動的にUnicodeで扱うことになりますが。

#Rubyはちと微妙なところがあるので保留


> 南アジアのタミル語とかベンガル語とかは、結合文字の嵐で、
> 見た目は1文字に合成するわけですが、その後に空白が多量に
> 表示されてしまうソフトウェアが結構あります。
> 
> BackSpaceを押したときに、結合結果を丸ごと削除するのか?
> 部品を一つずつ削除するのかの挙動をどうすべきか?
> 
> で西アジアのアラビア語などとなると、横書きで右から左に
> 書きますので、英文や日本語横書きと混在させるとなると、
> さて、どうなっちゃうんでしょう?という世界です。

アラビア語の中に左→右の言語の表記が入るときは

アラビア語 (左←右) 日本語(左→右) アラビア語(左←右)

と間に埋まって、directionが変わるというルールだったのでは?
#対応ソフトでこの手の入力するとカーソルの飛び方が楽しい(笑)

-- 
木村浩一
  I thought what I'd do was, I'd pretend I was one of those deaf-mutes or should I?
  mail kbk [at] kt.rim.or.jp
        web  www.kt.rim.or.jp/~kbk/zakkicho/
             homepage3.nifty.com/farstar/