[#43479] Re: sakuraインターネットのレンタルサーバーでRuby on Railsを動かす方法 — hantani <hantani@...>
西 啓一朗様
5 messages
2007/05/07
[#43494] ブロックとともに呼び出されたsortについて — "Toshiyuki Ogura" <oguradio@...>
小倉です。
12 messages
2007/05/15
[#43502] UTF-8でtrがうまく機能しない — Fujioka <fuj@...>
藤岡です。
5 messages
2007/05/15
[#43508] rubyのテキストについて — 桑江 康公 <ykuwae@...>
はじめまして、桑江といいます。プログラム開発の勉強をはじめたいと考えています。いろいろと調べたのですが、オブジェクト指向を使った開発が現在しりゅうとのことで、Javaを勉強しようと考えていたのですが、rubyという言語もあるということがわかりネットで調べたところこのメーリングリストにたどり着きました。どなたかプログラム開発初心者でもわかりやすい本またはサイトがありましたら教えていただけないでしょうか?ちなみに、私のレベルはHTMLが少しわかる程度です。
8 messages
2007/05/15
[#43526] タートルグラフィック ライブラリ — "ツムジ" <the.little.schemer+ruby@...>
初めまして。ツムジといいます。
1 message
2007/05/17
[#43553] win32oleプログラミングでのメモリリーク — Hidenori Hashizume <hide-tech@...2.ne.jp>
はしづめです。
5 messages
2007/05/21
[#43554] Ruby/Tk:ドラッグによる範囲選択 — 山崎雄介 <y-yamasaki@...>
山崎(ゆ)です。
5 messages
2007/05/22
[#43565] IO.popenと入出力 — MATSUNAGA Ichiro <vikke@...95.to>
松永です。
5 messages
2007/05/25
[ruby-list:43506] Re: UTF-8でtrがうまく機能しない
From:
KIMURA Koichi <kimura.koichi@...>
Date:
2007-05-15 08:20:29 UTC
List:
ruby-list #43506
木村です。
既に話の型がついちゃってるかもしれませんが。
On Tue, 15 May 2007 15:56:37 +0900
Fujioka <fuj@rabbix.jp> wrote:
> def str_upcase(str)
> oldkcode=$KCODE
> $KCODE="UTF-8"
> #1 result=str.tr("ャュョァィゥェォッ","ヤユヨアイウエオツ")
> #2 result=str.tr("ャュョァィゥェォ","ヤユヨアイウエオ").gsub(/ッ/,'ツ'))
> result.gsub!(/ | |\r|\n|\t/,'')
> $KCODE=oldkcode
> result
> end
> p str_upcase("ホウジョウ ソウウン")
>
> 以上のようなコードで#2は動作するのに
> #1は文字化けします。
> ッが何か関係しているのか思ってはいるのですが、
> よくわかっていません。
utf-8での、各文字のビットパターンを見るとこんな感じになります。
ヤ :: e3:83:a4
ャ :: e3:83:a3
ユ :: e3:83:a6
ュ :: e3:83:a5
ヨ :: e3:83:a8
ョ :: e3:83:a7
ア :: e3:82:a2
ァ :: e3:82:a1
イ :: e3:82:a4
ィ :: e3:82:a3
ウ :: e3:82:a6
ゥ :: e3:82:a5
エ :: e3:82:a8
ェ :: e3:82:a7
オ :: e3:82:aa
ォ :: e3:82:a9
ツ :: e3:83:84
ッ :: e3:83:83
ということと、tr は $KCODEの内容によらずバイトごとに置換を行うので
(これはFAQにあるとおり)、ッの最下位バイトの 0x83 と ツの最下位バイト
の 0x84のところでおかしくなるのでしょう(他の文字では0x83はそのまま
0x83に置き換わるパターンになっている)。
で、"ホウジョウソウウン"のほうは
ホ :: e3:83:9b
ウ :: e3:82:a6
ジ :: e3:82:b8
ョ :: e3:83:a7
ウ :: e3:82:a6
:: e3:80:80
ソ :: e3:82:bd
ウ :: e3:82:a6
ウ :: e3:82:a6
ン :: e3:83:b3
ホとンに 0x83が含まれているので大当たり、と。
--
木村浩一