Ruby on rails Rails无效的查询参数:非UTF-8值
我用包含口音“Réseau Social”的跟踪参数编码了一个URL 出现异常:“无效的查询参数:非UTF-8值: R�肖恩社交酒店 “/var/www/mysite prod/shared/bundle/ruby/2.3.0/gems/actionpack-5.0.0.rc1/lib/action\u dispatch/request/utils.rb:26:in `检查参数编码“”Ruby on rails Rails无效的查询参数:非UTF-8值,ruby-on-rails,ruby,utf-8,Ruby On Rails,Ruby,Utf 8,我用包含口音“Réseau Social”的跟踪参数编码了一个URL 出现异常:“无效的查询参数:非UTF-8值: R�肖恩社交酒店 “/var/www/mysite prod/shared/bundle/ruby/2.3.0/gems/actionpack-5.0.0.rc1/lib/action\u dispatch/request/utils.rb:26:in `检查参数编码“” 重音被编码为R%E9seau+Social,Rails不应该正确处理它吗?您可以尝试一下utf8 cleane
重音被编码为
R%E9seau+Social
,Rails不应该正确处理它吗?您可以尝试一下utf8 cleaner
gem。我不明白它为什么无效(é是有效的utf8字符)。一般来说,当您在Rails表单中输入文本字段时,完全可以编写重音符号,对吗?我不想像gem那样删除角色……这是一个复杂的话题。当您查看表单中的响应时,您会注意到rails总是在表单中包含一个utf字符作为隐藏字段,以确保浏览器以uft-8编码表单的形式发送响应。在查询字符串中,它更复杂。我不知道影响编码的所有组件,也不知道您的Web服务器“认为”它有什么编码。您是如何编码这个字符的?你用什么来编码它?你可以在我的代码摘录中看到:utm\u medium=R%E9seau
。我使用了UTM链接生成器,不确定引擎盖下发生了什么。
https://www.example.com/?utm_source=twitter&utm_medium=R%E9seau+Social&utm_campaign=test