summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--lib/fileutils.rb2
-rw-r--r--test/fileutils/test_fileutils.rb11
2 files changed, 12 insertions, 1 deletions
diff --git a/lib/fileutils.rb b/lib/fileutils.rb
index 04788e26ca..baa3d184b0 100644
--- a/lib/fileutils.rb
+++ b/lib/fileutils.rb
@@ -1290,7 +1290,7 @@ module FileUtils
def entries
opts = {}
- opts[:encoding] = ::Encoding::UTF_8 if fu_windows?
+ opts[:encoding] = path.encoding
files = if Dir.respond_to?(:children)
Dir.children(path, **opts)
diff --git a/test/fileutils/test_fileutils.rb b/test/fileutils/test_fileutils.rb
index ca435ed1ff..4951ca47fc 100644
--- a/test/fileutils/test_fileutils.rb
+++ b/test/fileutils/test_fileutils.rb
@@ -741,6 +741,17 @@ class TestFileUtils < Test::Unit::TestCase
assert_file_not_exist 'tmp/tmpdir3'
end
+ def test_remove_entry_cjk_path
+ dir = "tmpdir\u3042"
+ my_rm_rf dir
+
+ Dir.mkdir dir
+ File.write("#{dir}/\u3042.txt", "test_remove_entry_cjk_path")
+
+ remove_entry dir
+ assert_file_not_exist dir
+ end
+
def test_remove_entry_secure
check_singleton :remove_entry_secure