【问题标题】:Ruby convert non-printable characters into numbersRuby 将不可打印的字符转换为数字
【发布时间】:2013-11-22 14:01:24
【问题描述】:

我有一个包含不可打印字符的字符串。

我目前正在做的是用波浪号替换它们:

string.gsub!(/^[:print:]]/, "~")

但是,我实际上想将它们转换为它们的整数值。

我试过了,但它总是输出0

string.gsub!(/[^[:print:]]/, "#{$1.to_i}")

想法?

【问题讨论】:

    标签: ruby regex string non-printing-characters


    【解决方案1】:

    String#gsub, String#gsub! 接受可选块。块的返回值用于替换。

    "\x01Hello\x02".gsub(/[^[:print:]]/) { |x| x.ord }
    # => "1Hello2"
    

    【讨论】:

      【解决方案2】:

      Object#inspect 也是一个选项,如果您只需要输出带有不可打印字符的字符串来记录或用于调试目的。

      puts "\x01Hello\x02".inspect
      # => "\u0001Hello\u0002"
      

      【讨论】:

        猜你喜欢
        • 2023-04-10
        • 2019-06-18
        • 2011-08-22
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多