繁体   English   中英

Ruby异常:`不兼容的字符编码:ASCII-8BIT和UTF-8`

[英]Ruby exception: `incompatible character encodings: ASCII-8BIT and UTF-8`

重要信息在底线!

序列化协议缓冲区消息时,Rails应用程序遇到异常:

Exception(Encoding :: CompatibilityError):不兼容的字符编码:ASCII-8BIT和UTF-8

==== Stack trace: ====
/usr/local/rvm/gems/ruby-2.0.0-p576/gems/ruby-protocol-buffers-1.5.1/lib/protocol_buffers/runtime/encoder.rb:64:in `write'
/usr/local/rvm/gems/ruby-2.0.0-p576/gems/ruby-protocol-buffers-1.5.1/lib/protocol_buffers/runtime/encoder.rb:64:in `serialize_field_value'
/usr/local/rvm/gems/ruby-2.0.0-p576/gems/ruby-protocol-buffers-1.5.1/lib/protocol_buffers/runtime/encoder.rb:51:in `serialize_field'
/usr/local/rvm/gems/ruby-2.0.0-p576/gems/ruby-protocol-buffers-1.5.1/lib/protocol_buffers/runtime/encoder.rb:38:in `block in encode'
/usr/local/rvm/gems/ruby-2.0.0-p576/gems/ruby-protocol-buffers-1.5.1/lib/protocol_buffers/runtime/encoder.rb:15:in `each'
/usr/local/rvm/gems/ruby-2.0.0-p576/gems/ruby-protocol-buffers-1.5.1/lib/protocol_buffers/runtime/encoder.rb:15:in `encode'
/usr/local/rvm/gems/ruby-2.0.0-p576/gems/ruby-protocol-buffers-1.5.1/lib/protocol_buffers/runtime/message.rb:248:in `serialize'
/usr/local/rvm/gems/ruby-2.0.0-p576/gems/ruby-protocol-buffers-1.5.1/lib/protocol_buffers/runtime/message.rb:255:in `serialize_to_string'
/var/www/html/disp/lib/navs/navs.rb:955:in `compose_message'

955行是:

[type].pack('N*') + msg.serialize_to_string

其中type是整数,而msgProtocolBuffers::Message的后代。

重要信息

我仅在任何Web服务器(Apache + Passenger,WEBrick,Puma)的一台CentOS计算机上遇到此异常。 在Windows和其他CentOS机器上,一切都很好。 代码是相同的,每次测试之前都会重新创建数据库并为其设定种子。

通过将Ruby从2.0.0-p576降级到2.0.0-p481来解决

更新资料

p481不再可供下载。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM