ruby - 如何使用 Ruby 替换文本文件中每个字符的高位?

标签 ruby hex

我需要将源文件从旧的 CAN-8 系统转换为/自标准 ASCII。

CAN-8 文件的每个字节都有高位 (0x80)。

所以我需要做类似的事情:

f=File.new
can8=f.read

...用变量can8做点什么

当我显示 can8 变量时,它看起来像 "\xC1\xC2\xC3",我需要将其转换为 "ABC" ("\x41\x42\x43")

迈克

最佳答案

这是一种方法:

original_string = "\xC1\xC2\xC3"
converted_string = original_string.bytes.collect { |b| (b & 0x7f).chr }.join

您没有指定 Ruby 版本,所以我假设您使用的是 1.9 或更高版本。

关于ruby - 如何使用 Ruby 替换文本文件中每个字符的高位?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8440967/

相关文章:

ruby - 导轨4。来自著名供应商的联系人导入器(Gmail、Facebook...)

excel - 根据单元格中的十六进制值设置自动颜色背景?

unix - 在 Unix shell 脚本中将 ASCII 码转换为十六进制

c++ - 弄清楚网络、十六进制和 ascii 如何交互

javascript - 为什么本站的ECC-DH对称 key 与OpenSSL不一样

ruby-on-rails - 发生异常时发送电子邮件不起作用,使用 exception_notification

ruby-on-rails - 在 ruby​​ 中过滤事件记录结果

ruby-on-rails - Capistrano 错误

vb6 - vb 十六进制颜色代码

assembly - MIPS 十六进制输出