-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 *支持某些字符集或语言。这是一个人性化的界面。 –