Bug #10126

Dir.home encoding is incorrect on Windows

Added by Dāvis Mosāns 9 months ago. Updated 6 months ago.

[ruby-core:64310]
Status:Open
Priority:Normal
Assignee:cruby-windows
ruby -v:2.0.0p481 Backport:2.0.0: UNKNOWN, 2.1: UNKNOWN

Description

Dir.home string itself is actually returned encoded in cp775 (no matter what consoles encoding is)
but encoding information is as windows default encoding.

For example, if my home directory is C:\Users\Dāvis and windows default encoding 1257 with cosnole's encoding as 1252

dir = Dir.home
=> "C:/Users/D\x83vis"
dir.encoding
=> #<Encoding:Windows-1257>
puts dir
=> C:/Users/D�vis
dir.force_encoding('cp775')
puts dir
=> C:/Users/Dāvis

As can see, x83 is ā character in 775 encoding.

History

#1 Updated by Dāvis Mosāns 6 months ago

Looks like this have been fixed in Ruby 2.1

Testing with ruby 2.1.4p265 (2014-10-27 revision 48166) [x64-mingw32]

dir = Dir.home
puts dir
=> C:/Users/Dāvis
puts dir.encoding
=> #<Encoding:Windows-1257>

Also available in: Atom PDF