Issue #5287 has been updated by Yui NARUSE. Adam Prescott wrote: > On Wed, Sep 7, 2011 at 12:20 AM, Adam Prescott <adam / aprescott.com> wrote: > > Since "#{a}" is actually a new string, doesn't it make sense that its > > encoding should be the default internal encoding? I can see "#{a}" being > > used with the encoding change actually expected. > > I guess "no" is the answer? default_internal doesn't effect on this situation. "#{a}" is considered as ` s = a.to_s So "no" is the answer, s's encoding depends a's encoding. > What about "foo#{a}bar"? Would that have the same encoding result as > "#{a}", or is the latter just a special case? (Either choice seems > counterintuitive to me.) "foo#{a}bar" is considered as ` s = "foo"; s.concat(a.to_s); s.concat("bar"). So the resulted s's encoding depends "foo". ---------------------------------------- Backport #5287: 1.9.3 - Interpolation in a string causes the string's encoding to be set to ASCII-8BIT http://redmine.ruby-lang.org/issues/5287 Author: Jon Leighton Status: Closed Priority: High Assignee: Yui NARUSE Category: Target version: There appears to be a bug with the encoding of interpolated strings on 1.9.3. Here is a comparison of versions: 1.9.2 ----- ruby-1.9.2-p290 :001 > a = "" => "" ruby-1.9.2-p290 :002 > a.encoding => #<Encoding:UTF-8> ruby-1.9.2-p290 :003 > "#{a}".encoding => #<Encoding:UTF-8> 1.9.3-head ---------- ruby-1.9.3-head :004 > a = "" => "" ruby-1.9.3-head :005 > a.encoding => #<Encoding:UTF-8> ruby-1.9.3-head :006 > "#{a}".encoding => #<Encoding:ASCII-8BIT> ruby-head --------- ruby-head :003 > a = "" => "" ruby-head :004 > a.encoding => #<Encoding:UTF-8> ruby-head :005 > "#{a}".encoding => #<Encoding:UTF-8> -- http://redmine.ruby-lang.org