[ruby-core:70705] Re: [Ruby trunk - Bug #11519] [Feedback] "#{nil}" produces string as US-ASCII rather than current encoding

From: Perry Smith <pedzsan@...>
Date: 2015-09-09 20:05:16 UTC
List: ruby-core #70705
=E2=80=9C#{nil}=E2=80=9D.encoding !=3D =E2=80=98UTF-8=E2=80=99 and =
=E2=80=9C#{bar}#{foo}=E2=80=9D.encoding !=3D =E2=80=98UTF-8=E2=80=99 =
despite foo being UTF-8 and the encoding of the source file and hence =
the =E2=80=9C =E2=80=A6 =E2=80=9C string within the source file being =
UTF-8.

> On Sep 9, 2015, at 12:25 PM, nobu@ruby-lang.org wrote:
>=20
> Issue #11519 has been updated by Nobuyoshi Nakada.
>=20
> Description updated
> Status changed from Open to Feedback
>=20
> What's and why wrong?
>=20
> ----------------------------------------
> Bug #11519: "#{nil}" produces string as US-ASCII rather than current =
encoding
> https://bugs.ruby-lang.org/issues/11519#change-54094
>=20
> * Author: Perry Smith
> * Status: Feedback
> * Priority: Normal
> * Assignee:=20
> * ruby -v: ruby 2.2.3p173 (2015-08-18 revision 51636) =
[x86_64-darwin14]
> * Backport: 2.0.0: UNKNOWN, 2.1: UNKNOWN, 2.2: UNKNOWN
> ----------------------------------------
> ~~~ruby
> #! /usr/bin/env ruby
> # encoding: utf-8
>=20
> puts "Ruby version: #{RUBY_VERSION}"
> puts "__ENCODING__ =3D #{__ENCODING__}"
> puts "hello".encoding
> foo =3D "hello"
> puts "#{foo}".encoding
> puts "#{"hello"}".encoding
> bar =3D nil
> puts "#{bar}".encoding
> puts "#{nil}".encoding
> puts "#{bar}#{foo}".encoding
> ~~~
>=20
> The output for this on all versions of ruby that I have except 1.9.1 =
is this:
>=20
> ~~~
> Ruby version: 2.2.3
> __ENCODING__ =3D UTF-8
> UTF-8
> UTF-8
> UTF-8
> US-ASCII
> US-ASCII
> US-ASCII
> ~~~
>=20
> 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.
>=20
> 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.
>=20
>=20
>=20
>=20
> --=20
> https://bugs.ruby-lang.org/

In This Thread

Prev Next