Issue #5684 has been updated by Vladimir Chernis.

File socket_vs_file.rb added

To summarize:
File IO encoding works correctly in that it respects the default external encoding specified in the -E option to ruby. But Socket encoding does not.

I've attached a simple test case to illustrate the problem. When I run it with `ruby -E ISO-8859-1 socket_vs_file.rb`, I expect the following output:

  file encoding:      ISO-8859-1
  socket encoding: ISO-8859-1

But instead, I get this output:

  file encoding:      ISO-8859-1
  socket encoding: ASCII-8BIT

Am I mistaken to expect this behavior?
----------------------------------------
Bug #5684: [[Ruby 1.9:]] Socket doesn't respect default external encoding
http://redmine.ruby-lang.org/issues/5684

Author: Vladimir Chernis
Status: Open
Priority: Normal
Assignee: 
Category: 
Target version: 
ruby -v: ruby 1.9.2p290 (2011-07-09 revision 32553) [x86_64-darwin11.2.0] 


When receiving data from a TCPSocket (as in client.rb, attached), the default internal encoding specified by the -E option to ruby is not respected.

Steps:
(1) In terminal window A, run: ruby server.rb
(2) In terminal window B, run: ruby -E ISO-8859-1 client.rb

Expected result for terminal window B:
bytes: "hell\xF6"
encoding: ISO-8859-1

Actual result for terminal window B:
bytes: "hell\xF6"
encoding: ASCII-8BIT

Workaround:
Use String#force_encoding('ISO-8859-1')



-- 
http://redmine.ruby-lang.org