Issue #1685 has been updated by Thomas Thomassen.


Martin Drst wrote:
>  If you know of anything that's not yet in Ruby 2.2, please tell us, best 
>  by opening a bug for each issue.

I've been setting up tests and running them through Ruby 2.2 I find some are fixed but there is still several issues related to file handling. We'll be filing issues for what we have uncovered.

----------------------------------------
Bug #1685: Some windows unicode path issues remain
https://bugs.ruby-lang.org/issues/1685#change-46072

* Author: B Kelly
* Status: Assigned
* Priority: Normal
* Assignee: Usaku NAKAMURA
* Category: M17N
* Target version: next minor
* ruby -v: ruby 1.9.2dev (2009-06-24) [i386-mswin32_71]
* Backport: 
----------------------------------------
=begin
 Hi,
 
 I see some nice progress has been made in unicode path
 handling on windows.
 
 The following tests are not exhaustive, but do reveal some
 remaining issues.
 
 Everything below "NOT WORKING" fails in one way or another.
 
 Regards,
 
 Bill
 
 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 # encoding: UTF-8
 
 # Test unicode path/dir handling on windows
 
 require 'test/unit'
 
 class TestUnicodeFilenamesAndPaths < Test::Unit::TestCase
   def setup
     tmpdir = ENV['TEMP'] || "C:/TEMP"
     Dir.chdir tmpdir
     puts Dir.pwd
     testdir = "ruby_unicode_test"
     Dir.mkdir testdir unless test ?d, testdir
     Dir.chdir testdir
     puts Dir.pwd
   end
   
   def test_unicode_paths
     fname_resume = "R\xC3\xA9sum\xC3\xA9".force_encoding("UTF-8")
     fname_chinese = "\u52ec\u52ee\u52f1\u52f2.txt"
     dname_chinese = "\u52ec\u52ee\u52f1\u52f2"
 
     assert_equal( "UTF-8", fname_resume.encoding.name )
     File.open(fname_resume, "w") {|io| io.puts "Hello, World"}
     
     assert_equal( "UTF-8", fname_chinese.encoding.name )
     File.open(fname_chinese, "w") {|io| io.puts "Hello, World"}
     
     dat = File.read(fname_chinese)
     assert_equal( "Hello, World\n", dat )
     
     files = Dir["*"]
     assert( files.include? fname_resume )
     assert( files.include? fname_chinese )
 
 # NOT WORKING:
     Dir.rmdir dname_chinese rescue nil
     Dir.mkdir dname_chinese
     test ?d, dname_chinese
     Dir.chdir dname_chinese
     cwd = Dir.pwd
     assert( cwd[(-dname_chinese.length)..-1] == dname_chinese )
     Dir.chdir ".."
 
     x = File.stat(fname_resume)
     x = File.stat(fname_chinese)
     x = File.stat(dname_chinese)
     
     assert( File.exist? fname_resume )
     assert( File.exist? fname_chinese )
     assert( test(?f, fname_resume) )
     assert( test(?f, fname_chinese) )
 
     files = Dir[fname_resume]
     assert_equal( fname_resume, files.first )
     files = Dir[fname_chinese]
     assert_equal( fname_chinese, files.first )
     files = Dir[dname_chinese]
     assert_equal( dname_chinese, files.first )
   end  
 end
=end


---Files--------------------------------
spatulasnout-unicode-mkdir-diffs.txt (3.56 KB)
test_io_unicode_paths.rb (925 Bytes)


-- 
https://bugs.ruby-lang.org/