On Feb 1, 10:08     
> When I use Ruby 1.8.6 my Rails app works fine. Under Ruby 1.9.1 in
> development mode Webrick is trying to "split" binary data and throws
> an error:
>
> #<ArgumentError: invalid byte sequence in UTF-8>
> ["/Users/markw/bin/ruby19/lib/ruby/gems/1.9.1/gems/rails-2.2.2/lib/
> webrick_server.rb:136:in `split'", "/Users/markw/bin/ruby19/lib/ruby/
> gems/1.9.1/gems/rails-2.2.2/lib/webrick_server.rb:136:in
> `extract_header_and_body'", "/Users/markw/bin/ruby19/lib/ruby/gems/
> 1.9.1/gems/rails-2.2.2/lib/webrick_server.rb:109:in
> `handle_dispatch'", "/Users/markw/bin/ruby19/lib/ruby/gems/1.9.1/gems/
> rails-2.2.2/lib/webrick_server.rb:74:in `service'", "/Users/markw/bin/
> ruby19/lib/ruby/1.9.1/webrick/httpserver.rb:111:in `service'", "/Users/
> markw/bin/ruby19/lib/ruby/1.9.1/webrick/httpserver.rb:70:in `run'", "/
> Users/markw/bin/ruby19/lib/ruby/1.9.1/webrick/server.rb:183:in `block
> in start_thread'"]
>
> As much as possible I am trying convert all my Ruby code and Rails
> apps to Ruby 1.9.x and this is one of the last problems that I am
> having problems working around.
>
> I have tried several combinations of send_file calls like:
>
> send_file(filename, :filename => asset.filename, :type => :jpeg)
>
> and none work - unless I am sending a plain text file.
>
> This is obviously a unicode problem.
>
> Thanks,
> Mark

BTW, I can patch webrick_server.rb to make everything work:

    def extract_header_and_body(data)
      data.rewind
      data = data.read

      # MLW 2/1/2009
      if data.ascii_only?
        raw_header, body = *data.split(/^[\xd\xa]{2}/on, 2)
      else
        aa = data.lines.to_a
        ind = aa.index("\r\n")
        raw_header = aa[0...ind].join
        body = aa[ind+1..-1].join
      end

      #raw_header, body = *data.split(/^[\xd\xa]{2}/on, 2)
      header = WEBrick::HTTPUtils::parse_header(raw_header)

      return header, body
    end