From: "naruse (Yui NARUSE)" Date: 2013-04-19T08:15:56+09:00 Subject: [ruby-core:54446] [ruby-trunk - Bug #8289][Rejected] [].join.encoding # => US-ASCII (I expect also UTF-8 Issue #8289 has been updated by naruse (Yui NARUSE). Status changed from Open to Rejected It is intended. Strings always generated as an ASCII only string has US-ASCII encoding. It shall not cause any meaningful side effects. ---------------------------------------- Bug #8289: [].join.encoding # => US-ASCII (I expect also UTF-8 https://bugs.ruby-lang.org/issues/8289#change-38721 Author: peter_v (Peter Vandenabeele) Status: Rejected Priority: Normal Assignee: Category: core Target version: ruby -v: ruby 2.1.0dev (2013-04-19) [x86_64-darwin12.3.0] Backport: 1.9.3: UNKNOWN, 2.0.0: UNKNOWN May be related to http://bugs.ruby-lang.org/issues/5379 $ date Thu Apr 18 23:56:54 CEST 2013 $ rvm get stable $ rvm install ruby-head ... long compile process ... $ rvm use ruby-head Using /Users/peter_v/.rvm/gems/ruby-head $ ruby -v ruby 2.1.0dev (2013-04-19) [x86_64-darwin12.3.0] $ cat empty_array_join_returns_ASCII_encoding.rb puts ["abc"].join.encoding puts [].join.encoding puts [].join.encode("utf-8").encoding # Actual result: $ ruby -v empty_array_join_returns_ASCII_encoding.rb ruby 2.1.0dev (2013-04-19) [x86_64-darwin12.3.0] UTF-8 US-ASCII UTF-8 # Expected result $ ruby -v empty_array_join_returns_ASCII_encoding.rb ruby 2.1.0dev (2013-04-19) [x86_64-darwin12.3.0] UTF-8 UTF-8 # This is edited for expected result (not the actual result) UTF-8 I would expect that in Ruby 2.0 with UTF-8 as default encoding, the returned encoding of an array (with default encoding strings), is _always_ UTF-8, independent of the size of the array. The current behaviour breaks my tests for an output encoding of UTF-8 in the case the array is empty. My work around is `array.join().encode("utf-8")` which works, but is ugly. -- http://bugs.ruby-lang.org/