From: Vladimir Chernis Date: 2011-12-02T10:36:07+09:00 Subject: [ruby-core:41447] [ruby-trunk - Bug #5684] [[Ruby 1.9:]] Socket doesn't respect default external encoding 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