Project

General

Profile

Actions

Backport #9915

closed

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

Added by Anonymous over 10 years ago. Updated about 10 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 over 10 years ago

It looks like r42060 should be backported to 2.0.0.

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

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

Updated by Anonymous about 10 years ago

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

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