ruby - 将不间断空格转换为 Ruby 中的空格

我遇到的情况是,当编码为 utf-8 json 时,有时会使用 \u00a0(不间断空格)而不是空格来发送来自 html 文本区域或输入的用户输入数据。

我认为这是 Firefox 中的一个错误,因为我知道用户不是故意放入不间断空格而不是空格。

Ruby 中还有两个 bug,其中一个可以用来对抗另一个。

出于某种原因,\s\u00a0 不匹配。

但是 [^[:print:]],这绝对不应该匹配)和 \xC2\xA0 两者都会匹配,但我认为那些更少 -处理这个问题的方法并不理想。

还有其他解决此问题的建议吗?

最佳答案

使用 /\u00a0/ 匹配不间断空格。例如 s.gsub(/\u00a0/, ' ') 将所有不间断空格转换为常规空格。

使用 /[[:space:]]/ 匹配所有空格,包括 Unicode 空格,如不间断空格。这与 /\s/ 不同,后者仅匹配 ASCII 空格。

另请参阅:Ruby Regexp documentation

https://stackoverflow.com/questions/2588942/

相关文章:

java - 我如何反序列化以 jackson 为单位的时间戳?

ios - swift: 将多个 对象添加到 NSDictionary

c# - 在 JSON.NET 中序列化/反序列化字节数组

json - 使用绝对或相对路径在 curl 请求中发送 json 文件

java - 如何从 JSON 对象中获取日期

c# - 如何将 IEnumerable 转换为 JSON?

php - json_encode() 返回 false

java - 对象序列化为 JSON(使用 Gson)。如何在 UpperCamelCase 中设置

python - 将 JSON 日期字符串转换为 Python 日期时间

java - 使用 gson 反序列化对象的特定 JSON 字段