我有一个从字符串转换为二进制的代码:
> 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/