Project

General

Profile

Bug #11519

"#{nil}" produces string as US-ASCII rather than current encoding

Added by pedz (Perry Smith) almost 5 years ago. Updated over 4 years ago.

Status:
Closed
Priority:
Normal
Assignee:
-
Target version:
-
ruby -v:
ruby 2.2.3p173 (2015-08-18 revision 51636) [x86_64-darwin14]
[ruby-core:<unknown>]

Description

#! /usr/bin/env ruby
# encoding: utf-8

puts "Ruby version: #{RUBY_VERSION}"
puts "__ENCODING__ = #{__ENCODING__}"
puts "hello".encoding
foo = "hello"
puts "#{foo}".encoding
puts "#{"hello"}".encoding
bar = nil
puts "#{bar}".encoding
puts "#{nil}".encoding
puts "#{bar}#{foo}".encoding

The output for this on all versions of ruby that I have except 1.9.1 is this:

Ruby version: 2.2.3
__ENCODING__ = UTF-8
UTF-8
UTF-8
UTF-8
US-ASCII
US-ASCII
US-ASCII

It is the last part that gave me grief. Rails content_for used such a construct so all my content was being converted to US-ASCII and sometimes were error off.

It seems to me the "#{ ... }" string should be utf-8 and so anything inserted into it should be converted to utf-8 so "#{nil}" should be utf-8 -- not US-ASCII.

Also available in: Atom PDF