我运行Ruby on Rails应用程序,由于该网站在国际上越来越受欢迎,我开始遇到与编码有关的错误,例如:
编码:: UndefinedConversionError:" \ xE8"从ASCII-8BIT到UTF-8
我试图找到支持各种编码的HTTP请求模拟器来重现错误,但我没有太多运气。
有没有人知道如何使用非UTF8参数/路径信息模拟或测试HTTP请求?
答案 0 :(得分:0)
编码就是将文本表示为字节的方式。只要您使用相同的编码对文本进行编码/解码,您应该没问题。如果使用不同的编码对其进行编码/解码,它将以不同的方式解释字节序列并导致错误。
通常,您可以控制所使用的编码,并且网络服务器可以处理基本转换。 浏览器< - 编码 - >服务器< - 编码 - >文件
通常不需要“找到支持各种编码的HTTP请求模拟器”,因为您通常会定义在服务器端使用哪一个,或者Web服务器处理转换。
如果有一些奇怪的客户端使用了一些无法识别的奇怪编码,我会说它在您的网络服务器中是一个严重的问题,您的配置或类似的东西。 ...或者在文件中没有用您用来读取它们的相同格式编码。
...最后,我相信几乎所有的HTTP客户端都支持很多身体编码。
编辑:
由于您提到了网址:
必须使用普通的旧ASCII编码URL。即使你使用花哨的UTF8字符,浏览器也会在下面翻译它们。 http://en.wikipedia.org/wiki/Percent-encoding
对URL和无效字符使用奇怪的编码是客户端错误,应该是客户端IMHO修复。