From: Chris Morris Date: 2003-09-11T02:10:17+09:00 Subject: windows line termination Why does Ruby translate \n -> \r\n automagically when writing to/from file? Convenience, I assume, so I don't have to worry with this. But I've run into some wackiness regarding this. I'm uploading a file from a ruby script to a ruby cgi script. cgi.rb when reading multipart assumes that \r\n will exist as terminators in the contents. My client.rb reads in a file, Ruby translates the \r\n in the file to \n -- I then have to retranslate this back to \r\n prior to uploading to the cgi script, so the cgi will recognize the line terminators properly. Then my cgi writes the contents of the uploaded file to a local file, still translating \n -> \r\n so \r\n in the uploaded content becomes \r\r\n when written to disk. Argh. I don't know what I'm asking for, but I needed to rant. :) Is there a better way? Or is this just a weird case because of the specific line terminator cgi.rb multiform reader code is using? D:\temp>more endlinetest.rb s = "hey\r\n" File.open('endlinetest.txt', 'w+') do |f| f.print s end s_read = '' File.open('endlinetest.txt', 'r') do |f| s_read = f.read end p s_read D:\temp>endlinetest.rb "hey\r\n" D:\temp>w2k_dump.exe endlinetest.txt // w2k_dump.exe // SBS Windows 2000 Hex Dump Utility V1.00 // 08-27-2000 Sven B. Schreiber // sbs@orgon.com File: endlinetest.txt Size: 0x00000006 (6) Address | 00 01 02 03-04 05 06 07 : 08 09 0A 0B-0C 0D 0E 0F | 0123456789ABCDEF ---------|-------------------------:-------------------------|----------------- 00000000 | 68 65 79 0D-0D 0A : - | hey... -- Chris http://clabs.org/blogki