如何使用 Ruby 替换文本文件中每个字符的高位?
我需要将源文件从旧的 CAN-8 系统转换为标准 ASCII 或从标准 ASCII 转换。
CAN-8 文件的每个字节的高位为 (0x80)。
所以我需要做一些类似的事情:
f=File.new
can8=f.read
...用变量 can8
做一些事情
当我显示 can8
变量时,它看起来像 "\xC1\xC2\xC3"
,我需要将其转换为 "ABC"
("\x41\x42\x43"
)
Mike
I need to convert source files from an old CAN-8 system to/from standard ASCII.
The CAN-8 files have each byte with the high bit on (0x80).
So I need to do something like:
f=File.new
can8=f.read
... do something with variable can8
When I display the can8
variable it looks like "\xC1\xC2\xC3"
, I need to convert that to "ABC"
("\x41\x42\x43"
)
Mike
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(2)
这是一种方法:
您没有指定 Ruby 版本,因此我假设您使用的是 1.9 或更高版本。
Here is one way to do it:
You didn't specify a Ruby version, so I will assume you are using 1.9 or later.
下面的小脚本似乎可以完成这项工作:
char & 0x7F
关闭高位,chr()
将数字恢复为字符。The following little script seems to do the job:
The
char & 0x7F
turns off the high-bit, andchr()
turns the number back into a character.