首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何使用Ruby替换文本文件中每个字符的高位?

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

Stack Overflow用户
提问于 2011-12-09 12:11:47
回答 2查看 155关注 0票数 1

我需要将源文件从旧的CAN-8系统转换为标准ASCII,或者将其转换为标准ASCII。

CAN-8文件的每个字节的高位均为on (0x80)。

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

代码语言:javascript
复制
f=File.new
can8=f.read

..。对变量can8执行某些操作

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

麦克

EN

回答 2

Stack Overflow用户

发布于 2011-12-09 12:15:46

这里有一种方法:

代码语言:javascript
复制
original_string = "\xC1\xC2\xC3"
converted_string = original_string.bytes.collect { |b| (b & 0x7f).chr }.join

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

票数 4
EN

Stack Overflow用户

发布于 2011-12-09 12:16:59

下面的小脚本似乎可以完成这项工作:

代码语言:javascript
复制
File.open("/etc/passwd").each_byte { |char|
    print (char & 0x7F).chr()
}

char & 0x7F关闭高位,而chr()将数字转换回字符。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/8440967

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档