【发布时间】:2014-09-08 18:00:26
【问题描述】:
我刚刚升级到 Rails 3.0(不要评判!)和 Ruby 1.9.3,并且有一个客户端能够将一个字符串保存到数据库中,然后当在字符串上调用 .blank? 时阻塞 Rails。
我找到了一种在 Apache 级别阻止这些无效字节序列的方法,但想知道是否有人可以指导我准确了解该用户发送的内容。我自己无法解决。我猜这是某种表情符号?用户是真实的,即他们不是脚本小子或类似的东西。看起来他们使用的是三星 Android 平板电脑。
"sup boys what are you guys up to\xED\xA0\xBD\r\n "
更新:
查看我找到的日志:
"sup boys what are you guys up to\xED\xA0\xBD\r\n ????"
【问题讨论】:
-
你试过查看mysql中的原始数据吗?转换可能发生在轨道末端。我知道
to_json错误地将表情符号转换为此类字符的问题。此外,您的生产日志是一个很好的查看位置。如果这些是请求参数,您可以从那里获取值。 -
据我所知,这些数据在传入的过程中并没有什么特别的事情发生(Rails 可能会自动对其执行的操作除外)。
-
是的,这就是我的建议 - 尝试查看入口点(生产日志)和持久状态(使用原始 mysql 查询),看看 rails 是否在这里进行了一些转换。另外,您的 application.rb 文件中的
config.encoding值是什么?
标签: ruby-on-rails-3 character-encoding ruby-1.9.3