-1
我從用戶輸入是在以下格式的字符串:這些是什麼以及如何使用Ruby刪除它們?
"foo\U+FFE2\U+FFB5\U+FFE2\U+FFB5"
當我認爲這是不顯示在瀏覽器或終端東西,但他們肯定是有。
他們是什麼,我如何刪除所有像這樣的垃圾字符結果只是'富'?
我知道我可以只刪除這些特定的,但也可能有其他不同的那些,我只想從中獲取文本值。
任何想法?
我從用戶輸入是在以下格式的字符串:這些是什麼以及如何使用Ruby刪除它們?
"foo\U+FFE2\U+FFB5\U+FFE2\U+FFB5"
當我認爲這是不顯示在瀏覽器或終端東西,但他們肯定是有。
他們是什麼,我如何刪除所有像這樣的垃圾字符結果只是'富'?
我知道我可以只刪除這些特定的,但也可能有其他不同的那些,我只想從中獲取文本值。
任何想法?
我看到的兩個主要變體:
與#split
/#join
對:
"fooффф".split('').select{|x|x.ord <= 127}.join
# => "foo"
與#unpack
/#pack
對:
"fooффф".unpack('U*').select{|x| x <= 127}.pack('U*')
# => "foo"
([U + FFE2](http://www.fileformat.info/info/unicode/char/ffe2/index.htm),[U + FFB5](http://www.fileformat.info/info/unicode/) char/ffb5/index.htm)) –
你不處理/期待unicode? 「U + FFB5」是韓文字母,對你來說可能看起來像垃圾,但整個國家都會對此表示擔憂。 – Mark
互聯網不再僅僅基於ASCII,Win-1252,ISO-8859-1或拉丁字符集。除非您有特定的要求限制您的輸入,否則您需要準備好處理UTF-8和任何其他Unicode集。否則,您需要指定* ONLY *支持某些字符集或語言。這是一個人性化的界面。 –