2014-02-19 146 views
-1

我從用戶輸入是在以下格式的字符串:這些是什麼以及如何使用Ruby刪除它們?

"foo\U+FFE2\U+FFB5\U+FFE2\U+FFB5" 

當我認爲這是不顯示在瀏覽器或終端東西,但他們肯定是有。

他們是什麼,我如何刪除所有像這樣的垃圾字符結果只是'富'?

我知道我可以只刪除這些特定的,但也可能有其他不同的那些,我只想從中獲取文本值。

任何想法?

+1

([U + FFE2](http://www.fileformat.info/info/unicode/char/ffe2/index.htm),[U + FFB5](http://www.fileformat.info/info/unicode/) char/ffb5/index.htm)) –

+3

你不處理/期待unicode? 「U + FFB5」是韓文字母,對你來說可能看起來像垃圾,但整個國家都會對此表示擔憂。 – Mark

+0

互聯網不再僅僅基於ASCII,Win-1252,ISO-8859-1或拉丁字符集。除非您有特定的要求限制您的輸入,否則您需要準備好處理UTF-8和任何其他Unicode集。否則,您需要指定* ONLY *支持某些字符集或語言。這是一個人性化的界面。 –

回答

1

我看到的兩個主要變體:

  1. #split/#join對:

    "fooффф".split('').select{|x|x.ord <= 127}.join 
    # => "foo" 
    
  2. #unpack/#pack對:

    "fooффф".unpack('U*').select{|x| x <= 127}.pack('U*') 
    # => "foo" 
    
相關問題