藤本です、こんにちは。 From: matz / netlab.co.jp (Yukihiro Matsumoto) Subject: [ruby-list:6883] Re: http_get.rb Date: Mon, 2 Mar 1998 18:05:22 +0900 > いや,これはrubyのパーザの問題で(藤本さんが特に手をいれてな parse.yはほとんど手をいれてないので影響ないと思います。 > い限り),大丈夫なのは分かっているんです.気になっているのは > MacにおけるCライブラリがどのような変換を行うかです. > > たとえば > > f = open("/tmp/foo", "w") # テキストモードで変換させる > f.print "foo\r\n" > f.close > > f = open("/tmp/foo", "rb") # バイナリモードで読んでみる > p f.gets > > の結果とかが気になるんですね. 試してみました。 ruby> f = open("foo", "w") #<File:0x2988638> ruby> f.print "foo\r\n" nil ruby> f.close nil この時点でファイルfooを直接覗くと 666F6F0A0D になってました。どうい うことかわからないけど、\rと\nがそれぞれ逆に変換されてるのかなという感 じです。つづきは ruby> f = open("foo", "rb") #<File:0x29882dc> ruby> f.gets "foo\n" ruby> f.gets "\r" ruby> f.gets nil となります(直接覗いたとおりの結果)。ちなみに ruby> f = open("foo", "wb") # バイナリモードで書き #<File:0x2988638> ruby> f.print "foo\r\n" nil ruby> f.close nil は ruby> f = open("foo", "rb") # バイナリモードで読む #<File:0x29882dc> ruby> f.gets "foo\r\n" ruby> f.gets nil となります。当然かもしれませんが問題なしです。"\r\n"を正しく送るために はバイナリモードにする必要があるのかもしれません。 ============================================================= 藤本尚邦 FUJIMOTO Hisakuni hisa / imasy.or.jp =============================================================