Issue #14863 has been updated by jeremyevans0 (Jeremy Evans). xsimov (Xavier Sim) wrote: > Calling > ~~~ > irb(main):001:0> [].join.encoding > => #<Encoding:US-ASCII> > ~~~ > returns an empty string and that empty string is always in US-ASCII encoding. > > The expected result is that the returned empty string would be in UTF-8 since it seems to be the default for Ruby strings since 2.0. UTF-8 is the default for literal strings, not the default for all strings. Note that strings will automatically change their encoding from US-ASCII to UTF-8 if a UTF-8 string that uses non-ASCII characters is appended to them. ~~~ $ ruby -e 'p ([].join << "\u1234").encoding' #<Encoding:UTF-8> ~~~ ---------------------------------------- Bug #14863: Array#join with empty array returns empty string always in US-ASCII encoding https://bugs.ruby-lang.org/issues/14863#change-72585 * Author: xsimov (Xavier Sim) * Status: Open * Priority: Normal * Assignee: * Target version: * ruby -v: 2.4.2 * Backport: 2.3: UNKNOWN, 2.4: UNKNOWN, 2.5: UNKNOWN ---------------------------------------- Calling ~~~ irb(main):001:0> [].join.encoding => #<Encoding:US-ASCII> ~~~ returns an empty string and that empty string is always in US-ASCII encoding. The expected result is that the returned empty string would be in UTF-8 since it seems to be the default for Ruby strings since 2.0. -- https://bugs.ruby-lang.org/ Unsubscribe: <mailto:ruby-core-request / ruby-lang.org?subject=unsubscribe> <http://lists.ruby-lang.org/cgi-bin/mailman/options/ruby-core>