Project

General

Profile

Backport #9915

Encoding error when inspecting an array containing Pathname with UTF-8 characters

Added by jacknagel (Jack Nagel) over 5 years ago. Updated almost 5 years ago.

Status:
Closed
Priority:
Normal
[ruby-core:62978]

Description

Given:

$ locale
LANG="en_US.UTF-8"
LC_COLLATE="en_US.UTF-8"
LC_CTYPE="en_US.UTF-8"
LC_MESSAGES="en_US.UTF-8"
LC_MONETARY="en_US.UTF-8"
LC_NUMERIC="en_US.UTF-8"
LC_TIME="en_US.UTF-8"
LC_ALL="en_US.UTF-8"
$ cat t.rb
# encoding: UTF-8
require "pathname"
puts [Pathname.new("QQ音乐.app")].inspect

this script produces the following on Ruby 1.9.3:

[#<Pathname:QQ音乐.app>]

on Ruby 2.0.0:

t.rb:3:in `inspect': inspected result must be ASCII only or use the same encoding with default external (Encoding::CompatibilityError)
    from t.rb:3:in `<main>'

and on Ruby 2.1.1:

[#<Pathname:QQ音乐.app>]

I believe Ruby 2.0.0 should produce the same result as 1.9.3 and 2.1.1.

Associated revisions

Revision 9c7e5a85
Added by usa (Usaku NAKAMURA) almost 5 years ago

merge revision(s) 42060: [Backport #9915]

    * ext/pathname/pathname.c (path_inspect): use PRIsVALUE to preserve
      the result encoding.

git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/branches/ruby_2_0_0@47929 b2dd03c8-39d4-4d8f-98ff-823fe69b080e

Revision 47929
Added by usa (Usaku NAKAMURA) almost 5 years ago

merge revision(s) 42060: [Backport #9915]

* ext/pathname/pathname.c (path_inspect): use PRIsVALUE to preserve
  the result encoding.

History

Updated by jacknagel (Jack Nagel) over 5 years ago

It looks like r42060 should be backported to 2.0.0.

Updated by usa (Usaku NAKAMURA) over 5 years ago

  • Backport changed from 2.0.0: UNKNOWN, 2.1: UNKNOWN to 2.0.0: REQUIRED, 2.1: DONTNEED

Updated by usa (Usaku NAKAMURA) over 5 years ago

  • Tracker changed from Bug to Backport
  • Project changed from Ruby master to Backport200

Updated by jacknagel (Jack Nagel) almost 5 years ago

Is there any chance this can be addressed for the next patch release?

Updated by usa (Usaku NAKAMURA) almost 5 years ago

  • Status changed from Open to Assigned
  • Assignee set to usa (Usaku NAKAMURA)

I'm sorry for not included the fix in the last release.
I promise to include this in the next release.

memo: r42060

Updated by usa (Usaku NAKAMURA) almost 5 years ago

  • Status changed from Assigned to Closed
  • % Done changed from 0 to 100

Applied in changeset r47929.


merge revision(s) 42060: [Backport #9915]

* ext/pathname/pathname.c (path_inspect): use PRIsVALUE to preserve
  the result encoding.

Also available in: Atom PDF