2014-08-27 31 views
0

我遇到了一些格式錯誤的文本,似乎無法找到一種通用的方法來刪除特殊字符。刪除格式錯誤的文本中的特殊字符

這是在網站上看到的文字:Technological�\x00 SciencesString#force_encoding('UTF-8')結果:Technological\u0000 Sciences,這仍然導致Nokogiri提前終止。

我可以做一個快速和骯髒的gsub "Technological\u0000 Sciences".gsub(/\u0000/,''),但想知道是否有一個更普遍的解決方案,或配置在Nokogiri或紅寶石,也將工作?

+0

什麼是所需的輸出? – Anthony 2014-08-27 15:31:06

+0

也許是編碼問題?在瀏覽器中查看時,網站上的文字如何呈現? – Stefan 2014-08-27 15:31:11

+0

期望的輸出是「科技科學」,因此刪除任何特殊字符。這樣Nokogiri可以按預期進行。這可能是一個編碼問題;我沒有成功嘗試用'String#encode'解決它。 – John 2014-08-27 15:32:42

回答

1

你可以試試這個:

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

我修改了這個以在我的真實代碼中包含其他有效的posix括號表達式。謝謝! – John 2014-08-28 14:51:54

0

你可以這樣做:

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