Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/ruby-on-rails-3/4.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Ruby on rails 3 ArgumentError:调用时UTF-8中的字节序列无效。是否为空?_Ruby On Rails 3_Character Encoding_Ruby 1.9.3 - Fatal编程技术网

Ruby on rails 3 ArgumentError:调用时UTF-8中的字节序列无效。是否为空?

Ruby on rails 3 ArgumentError:调用时UTF-8中的字节序列无效。是否为空?,ruby-on-rails-3,character-encoding,ruby-1.9.3,Ruby On Rails 3,Character Encoding,Ruby 1.9.3,我刚刚升级到Rails 3.0(不要评判!)和Ruby 1.9.3,并且有一个客户端能够将字符串保存到数据库中,然后在调用字符串.blank?时阻塞Rails 我已经找到了一种在Apache级别上消除这些无效字节序列的方法,但我想知道是否有人能准确地指导我这个用户发送了什么。我自己也没办法解决。我猜是某种表情符号吧?用户是真实的,也就是说,他们不是脚本小子或诸如此类的人。看起来他们使用的是三星安卓平板电脑 “伙计们,你们在忙什么\xED\xA0\xBD\r\n” 更新: 查看我找到的日志: “

我刚刚升级到Rails 3.0(不要评判!)和Ruby 1.9.3,并且有一个客户端能够将字符串保存到数据库中,然后在调用字符串
.blank?
时阻塞Rails

我已经找到了一种在Apache级别上消除这些无效字节序列的方法,但我想知道是否有人能准确地指导我这个用户发送了什么。我自己也没办法解决。我猜是某种表情符号吧?用户是真实的,也就是说,他们不是脚本小子或诸如此类的人。看起来他们使用的是三星安卓平板电脑

“伙计们,你们在忙什么\xED\xA0\xBD\r\n”

更新:

查看我找到的日志:


“sup boys你们在忙什么\xED\xA0\xBD\r\n通过在ruby 2.1中使用
String#scrub
删除无效字符来解决问题。这是从
String#scrub
到ruby 1.9和2.0的后端口

您是否尝试查看mysql中的原始数据?转换可能发生在rails端。我注意到一个问题,
to_json
错误地将表情符号转换为此类字符。此外,您的生产日志也是一个很好的地方。如果这些是请求参数,您可以从中获取值。据我所知,在输入数据的过程中,这些数据没有发生任何特殊情况(Rails可能会自动对其执行的操作除外)。是的,这就是我的建议-尝试查看入口点(生产日志)和持久化状态(使用原始mysql查询)看看rails是否正在进行一些转换。还有,application.rb文件中的
config.encoding
值是什么?有趣的是,我最终使用了utf8 cleaner,因此我在那里发布了一个问题,即他们是否更愿意使用String#scrub: