【发布时间】:2011-02-05 01:06:52
【问题描述】:
我遇到的情况是,当编码为 utf-8 json 时,有时会使用\u00a0(不间断空格)而不是空格来发送来自 html 文本区域或输入的用户输入数据。
我认为这是 Firefox 中的一个错误,因为我知道用户不是故意放入不间断空格而不是空格。
Ruby 中还有两个 bug,其中一个可以用来对抗另一个。
无论出于何种原因,\s 与 \u00a0 不匹配。
但是[^[:print:]],绝对不应该匹配)和\xC2\xA0 都将匹配,但我认为这些不是处理问题的理想方法。
还有其他解决此问题的建议吗?
【问题讨论】:
-
哪个 Ruby 版本?在 1.9.2 /\u00a0/ 中匹配。
-
\s 不匹配 \u00a0 \u00a0 匹配 1.9,但我不确定 1.8
-
规则#1:当你认为你在一个非常流行的程序中发现了一个错误,尤其是在一些经过测试和广泛使用的程序中,比如 Firefox 的 textarea 处理,非常安静和仔细地检查你的测试. 100 次中有 99 次问题都在你身边。当我看到文本字段中出现不间断空格时,人们可能会在其中粘贴文本,我怀疑是 Microsoft Word 或设置为替换   的编辑器。对于空间。您可以通过创建一个页面、在其中放置一个文本区域并尝试复制问题来轻松测试您的理论。
标签: ruby json unicode utf-8 whitespace