gpt4 book ai didi

ruby Dir.entries 不识别特殊字符

转载 作者:太空宇宙 更新时间:2023-11-03 16:22:18 26 4
gpt4 key购买 nike

我正在使用

Dir.entries("myFolder")

获取所有文件名。问题是我得到的不是一些特殊字符,而是它们的占位符。如果文件名包含 Ç、Š 等特殊字符,则会发生此错误。

我已经指定了文件编码:

#encoding: utf-8.

在 Linux 上这行得通,在 Windows 上不行。

irb 中的测试结果:

[".", "..", "MA\xC8KA.png", "PES.png", "VLAK.png", "\x8EOGA.png"]

应该是:

[".", "..", "MAČKA.png", "PES.png", "VLAK.png", "ŽOGA.png"]

除了替换这些字符(如果有的话)之外,还有其他方法可以解决这个问题吗?

--------编辑------------

irb(main):001:0> Dir.entries("myFolder").map {|e| e.force_encoding('Windows-1250').encode('UTF-8')}

=> [".", "..", "MA\u010CKA.png", "PES.png", "VLAK.png", "\u017DOGA.png"]

irb(main):002:0> Dir.entries("myFolder").map {|e| e.force_encoding('UTF-8')}

=> [".", "..", "MA\xC8KA.png", "PES.png", "VLAK.png", "\x8EOGA.png"]

--------编辑------------

--------编辑 2------------

#encoding: utf-8
require 'green_shoes'

Shoes.app do

button "Get sample image name" do
@words_images = Dir.entries("myFolder").each {|word| word.gsub!(".png", "")}
@words_images.delete(".")
@words_images.delete("..")
@test.append{para @words_images.sample}
end

@test = stack do
end

end

--------编辑 2------------

谢谢。

问候,塞巴

最佳答案

我通过在读取目录中的文件时传递编码选项解决了这个问题:

Dir.entries("myFolder", encoding: "utf-8")

任何后来更改或强制更改编码的尝试都失败了。

提醒自己更仔细地阅读文档...

问候,塞巴

关于ruby Dir.entries 不识别特殊字符,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/31722820/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com