删除格式错误的文本中的特殊字符

时间:2014-08-27 15:20:56

标签: ruby-on-rails ruby encoding nokogiri

我遇到了一些格式错误的文字,似乎无法找到删除特殊字符的通用方法。

这是网站上显示的文字:Technological�\x00 SciencesString#force_encoding('UTF-8')结果:Technological\u0000 Sciences,仍然导致Nokogiri提前终止。

我可以做一个快速而又脏的gsub "Technological\u0000 Sciences".gsub(/\u0000/,''),但是想知道是否有更通用的解决方案,或者Nokogiri或ruby中的配置是否也有效?

2 个答案:

答案 0 :(得分:1)

你可以试试这个:

"Technological�\x00 Sciences".gsub(/[^[:alnum:][:space:][:punct:]]/, '')

答案 1 :(得分:0)

你可以这样做:

[29] pry(main)> str
=> "Technological�\u0000 Sciences"
[30] pry(main)> str.scan(/[a-zA-Z]{2,}/).join(' ')
=> "Technological Sciences"