[#21718] print, puts, printf — Masaki Suketa<CQN02273@...>
助田です.
[#21732] GtkRadioMenuItem activate — mof <mof@...>
はじめまして、「もふ」といいます。よろしくお願いします。
[#21736] OBJECTDAY 2000 — 助田 雅紀 <masaki.suketa@...>
助田です.
けいじゅ@日本ラショナルソフトウェアです.
石橋秀仁です。
けいじゅ@日本ラショナルソフトウェアです.
石橋秀仁です。
[#21738] ruby の W3C ドラフト — KUBO Takehiro <tkubo@...>
久保@茅ヶ崎市です。
[#21781] how to get error reason in ftplib ? — "Kikutani, Makoto" <kikutani@...>
前にも似たことを聞いた気がしますが....
[#21789] about ftplib(ftpup) — goto@...
お世話になります。後藤@横河工事です。
[#21798] script language magazine? — Akihiro Yamauchi <aygoofy@...>
こんばんは。
[#21818] RubyToken::TkSTRING::value — Yasushi Shoji <yashi@...>
やすしです。
[#21834] How can i use mod_ruby — goto@...
お世話になります。後藤@横河工事です。
[#21837] site_ruby & Linux distribution — OZAWA Sakuro <crouton@...>
小澤さくです。
[#21843] [Q]Security Check($SAFE): FileTest within mod_ruby — Hideto ISHIBASHI <hideto-i@...4u.or.jp>
石橋秀仁です。
まつもと ゆきひろです
[#21870] rubyunit — rubikitch <rubikitch@...>
るびきちです。
[#21892] ユーザーの新規登録方法について — goto@...
いつもお世話になります、後藤@横河工事です。
[#21905] rd-draft.ja.rd — akira yamada / やまだあきら <akira@...>
[#21922] ruby-1.4.4 binary for BeOS 5 (Intel) — tenmei@... (Noriaki Harada)
はらだです。
はじめまして、内藤と申します。
>はじめまして、内藤と申します。
内藤です。
小松です。
再び内藤です。
小松です。
はらだです。
市川 as Tanukiです。
[#21931] ruby-mode — Yasushi Abe <yasushi@...>
こんにちわ、阿部です。
[#21934] close on disk full — "Kikutani, Makoto" <kikutani@...>
curでディスクがフルな状態でPOPするとメイルを失なうという
In message "[ruby-list:21934] close on disk full"
[#21944] [Q] RD with CSS — gotoken@... (GOTO Kentaro)
ごとけんです
[#21956] Thread & STDIN — Masato Toyoshima <mt@...>
はじめまして、豊島といいます。
まつもと ゆきひろです
[#21974] Re: Polynomial.rb and floating point exception — "K.Kodama" <kdm@...>
児玉 です.
[#21981] rd2man — WATANABE Hirofumi <eban@...>
わたなべです.
Toshです。
わたなべです.
青山です。
Toshです。
青山です。
[#21990] rb.org — OZAWA Sakuro <crouton@...>
さくです。
[#21999] media watch 2000.03.18 — Noritsugu Nakamura <nnakamur@...>
[#22014] shell interactive — WATANABE Daisaku <dwata@...3.rim.or.jp>
児玉 です.
こんにちは、時田です。
なかだです。
わたなべです.
こんにちは、時田です。
わたなべです.
まつもと ゆきひろです
Sat, Apr 22, 2000 at 12:37:33AM +0900 において
まつもと ゆきひろです
こんにちは、時田です。
まつもと ゆきひろです
こんにちは、時田です。
[#22022] w3ml — とみたまさひろ <tommy@...>
とみたです。
[#22026] assert — "友谷 登" <ntomo@...>
はじめまして友谷です
[#22069] Re: #define const — Toyofuku <toyofuku@...>
豊福です。
[#22075] erb-1.2.2 — Masatoshi SEKI <m_seki@...>
石橋秀仁です。
[#22087] media watch 2000.03.24 — Noritsugu Nakamura <nnakamur@...>
[#22103] Please put ruby-1.4.4.tar.gz in pub/lang/ruby/1.4/ — "Akinori -Aki- MUSHA" <knu@...>
お願いがあるのですが、 ruby-1.4.4.tar.gz を FTP ツリーの 1.4/
[ruby-list:22103]におきまして、2000/04/25 12:38ほどに、
新井です。
まつもと ゆきひろです
わたなべです.
まつもと ゆきひろです
新井です。
Toshです。
[#22117] StateGraph: state machine interpreter — Hideto ISHIBASHI <hideto-i@...4u.or.jp>
石橋 "rubyholic" 秀仁です。
From: Hideto ISHIBASHI <hideto-i@rr.iij4u.or.jp>
石橋 "rubyholic" 秀仁です。
やすし % GUI大好きです。
[#22159] $LOAD_PATH への追加について — "Sugawara Hajime" <sugawara@...>
はじめまして、菅原@ホビー・データです。
菅原@ホビー・データです。
[#22164] Directory Cabinet Program — sekita-n@... (Nobutaka SEKITANI)
関谷@電通大です。
[#22171] postgres.c のエラーメッセージ — Saitou Noboru <noborus@...>
まつもと ゆきひろです
[#22181] Can't Use optparse — Yamada Kenji <kyamada@...>
Toshです。
なかだです。
Toshです。
なかだです。
Toshです。
新井です。
新井です。
Toshです。
新井です。
Toshです。
[#22188] Web Robot of Ruby — Ryunosuke Ohshima <ryu@...>
大島@北陸先端科学技術大学院大学です。
[ruby-list:21727] Re: Where is http-access.rb?
越水です。
PerlのURI::Escape.pm (v3.13)では:
# Default unsafe characters. (RFC 2396 ^uric)
$text =~ s/([^;\/?:@&=+\$,A-Za-z0-9\-_.!~*'()])/$escapes{$1}/g;
となっています。コメントにあるuricというのは:
uric = reserved | unreserved | escaped
reserved = ";" | "/" | "?" | ":" | "@" | "&" | "=" | "+" |
"$" | ","
unreserved = alphanum | mark
mark = "-" | "_" | "." | "!" | "~" | "*" | "'" |
"(" | ")"
escaped = "%" hex hex
となっています。コードを見たのですが、実際にはescapedをさらにエスケー
プするようです。これはこれで実用上は構わないのでしょう。
ところで、IPv6のURLを定めているRFC 2732では、`['と`]'をreservedに移し
ています。それを考慮して、上のEscape.pmのコードを直すと:
$text =~ s/([^;\/?:@&=+\$,A-Za-z0-9\-_.!~*'()\[\]])/$escapes{$1}/g;
になります。これをRubyにすると:
def escape(string)
string.gsub(/([^;\/?:@&=+$,A-Za-z0-9\-_.!~*'()\[\]])/n) do
sprintf("%%%02X", $1.unpack("C")[0])
end
end
となるでしょうか。正規表現の[^]を展開すると私の理解を越えてしまうので、
そのままにしておきました。
ただ、なひさんのおっしゃることにも一理あって、何をエスケープするかは、
ライブラリの実装者が決めかねるところでもあります。Escape.pmでは、それ
に対応するために:
uri_escape($string, [$unsafe])
として、どの文字をエスケープの対象にするか、ユーザが決められるようになっ
ています。それを真似て:
def escape(string, unsafe=nil)
## raise ArgumentError unless unsafe.nil? or unsafe.is_a? String
if not unsafe
string.gsub(/[^;\/?:@&=+$,A-Za-z0-9\-_.!~*'()\[\]]/n) do |match|
sprintf("%%%02X", match.unpack("C")[0])
end
else
string.gsub(/[#{unsafe}]/n) do |match|
sprintf("%%%02X", match.unpack("C")[0])
end
end
end
p escape('http://foo/bar?a=b c=d')
p escape('http://foo/bar?a=b c=d', ' ')
としたほうがいいかも知れません。
` 'を`+'に変換する処理は、もともとURIの範疇ではありませんし、削ること
に異論はありません。ただ、考えてみれば、エスケープする機能は、正しい
URI文字列を作るためには必要ですね。
越水
greentea@fa2.so-net.ne.jp