如何在不同的编码中模拟HTTP请求?

时间:2014-06-23 15:55:29

标签: ruby-on-rails ruby http encoding utf-8

我运行Ruby on Rails应用程序,由于该网站在国际上越来越受欢迎,我开始遇到与编码有关的错误,例如:

编码:: UndefinedConversionError:" \ xE8"从ASCII-8BIT到UTF-8

我试图找到支持各种编码的HTTP请求模拟器来重现错误,但我没有太多运气。

有没有人知道如何使用非UTF8参数/路径信息模拟或测试HTTP请求?

1 个答案:

答案 0 :(得分:0)

编码就是将文本表示为字节的方式。只要您使用相同的编码对文本进行编码/解码,您应该没问题。如果使用不同的编码对其进行编码/解码,它将以不同的方式解释字节序列并导致错误。

通常,您可以控制所使用的编码,并且网络服务器可以处理基本转换。 浏览器< - 编码 - >服务器< - 编码 - >文件

通常不需要“找到支持各种编码的HTTP请求模拟器”,因为您通常会定义在服务器端使用哪一个,或者Web服务器处理转换。

如果有一些奇怪的客户端使用了一些无法识别的奇怪编码,我会说它在您的网络服务器中是一个严重的问题,您的配置或类似的东西。 ...或者在文件中没有用您用来读取它们的相同格式编码。

...最后,我相信几乎所有的HTTP客户端都支持很多身体编码。

编辑:

由于您提到了网址:

必须使用普通的旧ASCII编码URL。即使你使用花哨的UTF8字符,浏览器也会在下面翻译它们。 http://en.wikipedia.org/wiki/Percent-encoding

对URL和无效字符使用奇怪的编码是客户端错误,应该是客户端IMHO修复。