如何从字符串中删除不可打印的不可见字符?
Ruby版本: 2.4.1
2.4.1 :209 > product.name.gsub(/[^[:print:]]/,'.')
=> "Kanha"
2.4.1 :210 > product.name.gsub(/[^[:print:]]/,'.').length
=> 6
2.4.1 :212 > product.name.gsub(/[\u0080-\u00ff]/, '').length
=> 6
2.4.1 :214 > product.name.chars.reject { |char| char.ascii_only? and (char.ord < 32 or char.ord == 127) }.join.length
=> 6
2.4.1 :216 > product.name.gsub(/[^[:print:]]/i, '').length
=> 6
"Kanha"这个词有5个字母。然而,还有第6个字符是不可打印的。我该如何删除它?
通过搜索和查看stackoverflow(SO),我已经尝试了几种方法,但正如您所看到的,它们都没有帮助。
当我尝试与其他系统集成时,它会导致问题。
U+202C
的?而且product.name.each_char.all?(/[[:print:]]/)
这段代码为什么会报错 ArgumentError:参数数量错误(应给定1个,但期望为0个)?我不明白你的意思,请解释一下。 - Surya