ruby - 在ruby中将字符串撤消为二进制

标签 ruby string binary unpack

我有一个从字符串转换为二进制的代码:

> s = "Anatomía Según Grey"
=> "Anatomía Según Grey"

> s.unpack("a*").first
=> "Anatom\xC3\x83\xC2\xADa Seg\xC3\x83\xC2\xBAn Grey"

如何获取原始字符串(撤消unpack)?

最佳答案

转换等同于:

s = "Anatomía Según Grey"
#=> "Anatomía Según Grey"

s.force_encoding('BINARY')
#=> "Anatom\xC3\x83\xC2\xADa Seg\xC3\x83\xC2\xBAn Grey"

它可以通过以下方式“反转”:(您可能需要调整 'UTF-8' 部分)

s.force_encoding('UTF-8')
#=> "Anatomía Según Grey"

force_encoding不会更改字符串,它只是定义如何解释字节。

要修复字符串,您可能必须调用 encode另外:

"Anatomía Según Grey".encode('ISO-8859-1').force_encoding('UTF-8')
#=> "Anatomía Según Grey"

关于ruby - 在ruby中将字符串撤消为二进制,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/43894503/

相关文章:

c - 从函数传递字符串

python - 在 Python 3 中删除字符串文字前面的 'b' 字符 do

math - 分数的2的补码表示法?

algorithm - 使用 5 位二进制补码进行十进制转换

Ruby、Mechanize、OAuth 和 LinkedIn 合二为一?

ruby - 如何解冻 Ruby 中的对象?

ruby - 使用 Ruby 解析 XML

ruby - 用 Ruby 设计扑克解析器

python - 如何查找和替换文本文件中的多行?

c - 将一个字符串插入另一个字符串没有库函数