Project

General

Profile

Actions

Backport #9915

closed

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

Added by Anonymous almost 10 years ago. Updated over 9 years ago.

Status:
Closed
[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.

Updated by Anonymous almost 10 years ago

It looks like r42060 should be backported to 2.0.0.

Updated by usa (Usaku NAKAMURA) almost 10 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) almost 10 years ago

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

Updated by Anonymous over 9 years ago

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

Updated by usa (Usaku NAKAMURA) over 9 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) over 9 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.
Actions

Also available in: Atom PDF

Like0
Like0Like0Like0Like0Like0Like0