使用 Ruby 在多个操作系统中读取文件名而不会出现编码问题

2023-12-15

我想获取 UTF-8 格式的所有文件名。例如,当我在 Windows 中读取文件名后,我会

filename = Iconv.iconv("UTF-8", "Windows-1251", filename)

在 Ubuntu 中,我不转换文件名并以 UTF-8 格式获取它。也许存在某种方法来确定操作系统文件名编码?


当我想确保内容采用 UTF-8 格式时,我在 Ruby 1.9 上执行此操作:

if filename.encoding.to_s != 'UTF-8'
  filename.encode!('UTF-8')
end

除非您的操作系统提供的文件名使用不支持文件名中某些特殊字符的编码系统进行编码,否则可以将其编码为 UTF-8,不会出现任何问题。

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

使用 Ruby 在多个操作系统中读取文件名而不会出现编码问题 的相关文章

  • vscode( vscode-ruby + rubocop ) 如何在保存时自动更正?

    环境 vscode 版本1 19 1 1 19 1 鲁博科普 0 52 1 Darwin mbp 16 7 0 Darwin 内核版本 16 7 0 2017 年 10 月 4 日星期三 00 17 00 PDT 根 xnu 3789 71
  • 在 C# 中对 PDF 进行 Base64 编码?

    有人可以提供一些有关如何执行此操作的说明吗 我可以对常规文本或字节数组执行此操作 但不知道如何处理 pdf 我要先将pdf填充到字节数组中吗 Use File ReadAllBytes http msdn microsoft com en
  • setInterval() 相当于 ruby

    在 JavaScript 中你可以这样做 setInterval func delay 我似乎无法在谷歌上找到任何我真正想要的东西 红宝石有等效的吗 提前致谢 你可以做类似的事情 Thread new do loop do sleep de
  • 为什么我的 RSpec 规格运行两次?

    我在我的文件中定义了以下 RSpec 1 3 0 任务Rakefile require spec rake spectask Spec Rake SpecTask new spec do spec spec libs lt lt lib l
  • 使用 Ruby SDK 将文件上传到 Amazon S3

    我正在尝试上传文件 一个简单的 hello txt 我正在关注文档 但无法将其上传到我的存储桶 START AWS CLIENT s3 Aws S3 Resource new bucket s3 bucket BUCKET NAME beg
  • Deflate 压缩 - 数值示例

    我真的很想看看一个数字示例 手动压缩如何进行压缩 以下非常短的文本 abc 已使用 deflate 算法进行压缩 输出 eJxLTEoGAAJNASc 其二进制表示法为 01100101 01001010 01111000 01001100
  • Ruby 有哪些图形包/API?

    Similar Perl 有哪些图形包 API https stackoverflow com questions 460325 what graphing packages apis exist for perl 我正在对不同语言的在线图
  • 使用自定义令牌进行 Firebase 身份验证

    我有一个 firebase 项目 我试图从我的 Rails 服务器进行身份验证 按照文档上的说明使用 ruby jwt 库创建自定义令牌 但我不断收到相同的错误 auth invalid custom token 自定义令牌格式不正确 请检
  • 使用正则表达式检查至少 8 位数字的字符串

    我的正则表达式如下 d s 12 这将允许数字 空格 但我想确保字符串至少包含 8 位数字 一些允许的字符串如下 1323 24 233 24243434 43 43435 4554345 434 它不应该允许这样的字符串 1213 232
  • 将对象数组转换为 ActiveRecord::Relation

    我有一个对象数组 我们称其为Indicator 我想运行 Indicator 类方法 def self subjects该数组上的种类 范围等 我知道在一组对象上运行类方法的唯一方法是让它们成为 ActiveRecord Relation
  • 对于所有 mime 类型,仅respond_to format.js

    我有一个响应 format js 的控制器 但是 大多数请求假设旧的 format html 仍然存在并抛出 404 异常 如何捕获控制器上的所有 MIME 请求并将它们仅重定向到 format js 这是当前控制器的操作 def sear
  • 安装heroku toolbelt后出现Ruby错误

    我正在 win 7 32 位系统上使用 Heroku 但我没有管理员权限 我已经下载并安装了heroku工具带如下http community webfaction com questions 11803 heroku toolbelt h
  • 如何在没有 sudo 的情况下安装 gem

    在我所有的 gem 安装中 我必须执行 sudo 所以 sudo gem 安装rails 会起作用 而只有 宝石安装导轨 不管用 我该如何补救 我安装了rvm murtaza murtaza dev which rvm home murta
  • 是否仍然可以在 Rails 4 中使用测试单元?

    从 Rails 3 2 升级到 Rails 4 后 我的应用程序可以运行 但我用测试单元编写的测试是一场灾难 据传 Minitest 与测试单元 兼容 然而 如果我尝试使用 现在捆绑的 Minitest 就会发现有很多差异 从断言 语句名称
  • 捆绑安装无法安装 libxml-ruby

    我是 Ruby 世界的新手 我需要克隆一个现有项目 说明是 source env development bundle install 但它失败了 Using libv8 3 16 14 15 Fetching libxml ruby 2
  • 如何在 jQuery.ui.autocomplete 中的自动完成弹出窗口下方添加所有搜索的链接?

    我有使用 jQuery UI 自动完成插件的搜索建议自动完成功能 http jqueryui com autocomplete http jqueryui com autocomplete 但是如何添加结果弹出项目的底部 其行为类似于 Qu
  • " 是 JSON 字符串

    我有一个 JSON 字符串 当使用 Model JsonData 在 ASP NET MVC 页面中显示时 它看起来像这样 id 123 text Consumer parent 当我在 JavaScript 代码中使用相同的 Model
  • 在 Rails 中使用 config.assets.precompile 将资源包含在子目录中

    我有一个在 Heroku 上运行的 Rails 3 1 3 应用程序 通过 S3 进行资产托管asset sync 包含在我的app assets css目录是一个包含两个文件的子目录 main css scss and categorie
  • ActiveRecord::Enum - PG::InvalidTextRepresentation:错误:整数输入语法无效:

    我遇到了一个奇怪的错误 希望有人能指出我正确的方向 我有一个名为 组织 的模型和一个名为 组织 的属性department 请参阅下面的架构摘录 t integer department default 0 在我的模型内部已经定义了这个属性
  • 将用户输入转换为整数

    所以我有一个用户可以输入价格的表格 我正在尝试创建一个 before validation 来规范化数据 如果用户放置 则剪裁它 before validation do unless self price blank then self

随机推荐

  • 从 NodeJS 中的 get 请求流式传输 axios 响应

    我正在寻找在节点程序中使用 axios 向方法 myMethod 发送 返回 可读流 gt 我想将响应流式传输到可用于发送给 myMethod 调用者的 ReadableStream This code does nt work but t
  • 使用 d3.json 从 PHP 输出 JSON

    我创建了一个 PHP 文件来查询 JSON 输出 特定过滤器 testPHP php number 123 的 PHP 文件的 JSON 输出是 source AB target AC type true source UB target
  • 我可以添加自定义 modbar 按钮吗?

    我有一个自动缩放 y 轴的函数 它接收图形和重新布局数据对象 然后输出符合我预先确定的某些标准的 y 轴 我想在 python 上的 dash 中添加一个新的 modbar 按钮 该按钮会在我点击它时触发该函数并更新图形 那可能吗 一个简单
  • 如何减少Python中大列表使用的内存

    我正在编写一个程序 它工作正常 但是当它将数据库 100MB 文本文件 加载到列表时 它的内存使用量变成 700 800MB 用于将文件加载到列表的代码 database db open database db hdb dbcontent
  • 使用 BERT (TF 1.x) 保存的模型执行推理

    我被困在一行代码结果整个周末一个项目都被搁置了 我正在开发一个使用 BERT 进行句子分类的项目 我已经成功训练了模型 并且可以使用 run classifier py 中的示例代码来测试结果 我可以使用此示例代码导出模型 该代码已多次重新
  • 这是 GAC 的所在地吗?

    这是 GAC 的所在地吗 C Windows Microsoft NET assembly GAC MSIL 如果是这样 那么什么是C Windows assembly 答案取决于所使用的 NET Framework 的版本 多个版本可以并
  • 将设备指针传递给 cublasSnrm2 时出现分段错误

    下面的 cublas 代码给了我们错误 core dumped while being at cublasSnrm2 handle row dy incy de 你能给一些建议吗 main cu include
  • 如何从 MySQL 表中获取所有数据组合? [复制]

    这个问题在这里已经有答案了 在过去的五个小时里 我一直试图从表格中获取每种产品选项组合 但现在我完全陷入困境 我有一个表 其中包含如下数据 简化 CREATE TABLE assigned options option id int 10
  • 如何将 C 文件编译为可执行 (.exe) 文件?

    我不确定在 Windows 7 下使用 Cygwin 将 C 文件编译为可执行文件 谁能告诉我该怎么做吗 我读过一些教程但仍然不明白 我知道我需要一个Makefile 但是我应该在其中写入什么才能在编译过程后获得可执行文件呢 一开始我会说安
  • Spring:无法将模拟注入到使用 @Aspect 注释的类中

    我使用 AspectJ 创建了一个 Before 建议 package test accesscontrol permissionchecker import test accesscontrol database SessionExpir
  • 编写 JUnit 测试

    拜托 我是Java新手 如何为以下程序编写 JUnit 测试 要测试的程序 package codekeeper author henryjoseph import java util import java io public class
  • Conda 仅为 env 设置 LD_LIBRARY_PATH [重复]

    这个问题在这里已经有答案了 我安装了 miniconda3 其中创建了一个名为 py35 的虚拟环境 我有一些只想在这个环境中使用的库 因此他们处于 miniconda3 envs py35 libs 但是 由于 LD LIBRARY PA
  • Java JsonObject 数组值到键

    我是java新手 所以这有点令人困惑 我想获取json格式的字符串 我想要的结果是 user name lamis 我目前正在做的是这样的 JSONObject json new JSONObject json put name Lamis
  • .net 位图改变图像的颜色

    我正在尝试调整图像大小而不丢失任何颜色 但我无法让它发挥作用 看下图 上一张是原图 下一张是经过 NET的 我的问题是 如何保留颜色 我尝试了很多不同的设置 寻找 GDI 错误 更改调色板 将 ImageAttributes 更改为人们在互
  • 聚合与组合

    我想知道之间的关系是Human and a Driver License聚合还是组合 我很清楚Room and a Building关系是一个组合和一个Chair and a Room是一个聚合 但一个Driver License可以在没有
  • Visual Studio 2022 - v.17.6.5 - 在 _Layout.cshtml 中链接安装的 nuget 包 css 文件

    我创建了一个新的 net 6 0 MVC Web project并删除了预装的bootstrap from wwwroot lib因为我想添加它NuGet Package Manager 安装软件包后 文件将显示在我的中作为参考wwwroo
  • 在多个控制器操作中保留值

    在我的控制器中 我有一个数据库中对象的 ID 并且多个操作需要此 ID 来访问该对象 该 ID 是在Index操作并用于填充视图模型 我获取 ID 的方式是通过一个参数 EPiServer CMS 外 将Index行动 所以我无法在其他地方
  • 获取文件夹中的所有音频文件

    如何使用 ManagedQuery 从 Android 中的特定文件夹中获取所有音频文件 表示 ManagedQuery 中的 where 子句应该是什么来过滤 Cursor 结果 Code is String proj MediaStor
  • 使用 PHPmailer 发送多封电子邮件

    编辑 我忘记了我创建了SendMail 函数我自己 这就是为什么解释一开始没有提到它的作用 我在使用 PHPMailer 时遇到了一些问题 https github com PHPMailer PHPMailer 当尝试发送两封电子邮件时
  • 使用 Ruby 在多个操作系统中读取文件名而不会出现编码问题

    我想获取 UTF 8 格式的所有文件名 例如 当我在 Windows 中读取文件名后 我会 filename Iconv iconv UTF 8 Windows 1251 filename 在 Ubuntu 中 我不转换文件名并以 UTF