【问题标题】:How encode sequence of bytes into ruby string with characters如何将字节序列编码为带有字符的ruby字符串
【发布时间】:2014-02-22 21:31:15
【问题描述】:

如何将 ruby​​ 字符串中的字节序列编码为 ruby​​ 字符串人类可读的字符?

这是输入字符串:

"\x127\x00\x06\x00\x00\x00\x01\x00\xA2\x8F"

那么如何将这个字符串解析成字节数组,

并将数组中的每个元素编码为 ASCII 字符?

附:但是,我找不到从字节往返返回数组的方法。我尝试使用带有 U* 选项的 Array.pack,但这不适用于多字节字符。

【问题讨论】:

  • 请举例说明“人类可读”是什么意思(如果我想将它理解为 Ruby 字符串,我可以很好地阅读你的示例)。此外,最好显示一些您目前拥有的代码,否则会花费更多的精力来回答您的问题(并且很少有人会这么想)。
  • 也许这种方法会帮助你 - ruby-doc.org/core-2.1.0/String.html#method-i-unpack .. 但我不知道.. :)
  • 很抱歉就此结束。我想如果你知道你在找什么,你可能一开始就不需要问这个问题。
  • "string\xaa".each_byte.map {|b| "%c" % b }

标签: ruby string encode hex


【解决方案1】:

你可以试试这样的:

"string\xaa".each_byte.map {|b| "%c(%x)" % [ b, b ] }.join( ' ' )
# => "s(73) t(74) r(72) i(69) n(6e) g(67) ª(aa)"

【讨论】:

    猜你喜欢
    • 2012-12-20
    • 2020-05-22
    • 1970-01-01
    • 1970-01-01
    • 2019-12-29
    • 2016-01-21
    • 2020-07-05
    • 1970-01-01
    相关资源
    最近更新 更多