Ruby将不可打印的字符转换为数字

Ruby将不可打印的字符转换为数字,ruby,regex,string,non-printing-characters,Ruby,Regex,String,Non Printing Characters,我有一个带有不可打印字符的字符串 我目前所做的是使用以下工具将其替换为瓷砖: string.gsub!(/^[:print:]]/, "~") 但是,我实际上想将它们转换为它们的整数值 我尝试过这个,但它总是输出0 string.gsub!(/[^[:print:]]/, "#{$1.to_i}") 想法?,接受可选块。块的返回值用于替换 "\x01Hello\x02".gsub(/[^[:print:]]/) { |x| x.ord } # => "1Hello2" 如果您只需要将

我有一个带有不可打印字符的字符串

我目前所做的是使用以下工具将其替换为瓷砖:

string.gsub!(/^[:print:]]/, "~")
但是,我实际上想将它们转换为它们的整数值

我尝试过这个,但它总是输出
0

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

,接受可选块。块的返回值用于替换

"\x01Hello\x02".gsub(/[^[:print:]]/) { |x| x.ord }
# => "1Hello2"
如果您只需要将带有不可打印字符的字符串输出到日志或用于调试目的,则也是一个选项

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