【发布时间】:2010-10-12 10:57:34
【问题描述】:
我正在做一些屏幕抓取并返回一个似乎以空格结尾的字符串,但 string.strip 或 strip.gsub(/\s/u, '') 都没有删除该字符。
我猜这是字符编码问题。有什么建议吗?
【问题讨论】:
标签: ruby-1.9
我正在做一些屏幕抓取并返回一个似乎以空格结尾的字符串,但 string.strip 或 strip.gsub(/\s/u, '') 都没有删除该字符。
我猜这是字符编码问题。有什么建议吗?
【问题讨论】:
标签: ruby-1.9
我认为,有很多“空格字符”。 你可以使用这样的东西:
my_string.gsub("\302\240", ' ').strip
【讨论】:
my_string.tr("\302\240", ' ').strip 应该快一点
/[[:space:]]/ 匹配所有空格,包括Unicode 空格,如不间断空格。这与/\s/ 不同,它只匹配ASCII 空格。”
你可以试试这个:my_string.gsub(/\A[[:space:]]+|[[:space:]]+\z/, '')
这应该删除字符串开头和结尾的所有空格字符,包括所有可能的 unicode 空格变体。
【讨论】:
找出最后一个字符的字符代码(str[-1].ord)并显式搜索并销毁它。如果之后存在更多不需要的字符,请冲洗/重复。完成此操作后,在此处报告隐形字符是什么。 (也许只是因为您使用的字体没有那个字形,所以它是不可见的?)
【讨论】: