【问题标题】:How can I simulate HTTP requests in different encodings?如何模拟不同编码的 HTTP 请求?
【发布时间】:2014-08-13 17:58:08
【问题描述】:

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

Encoding::UndefinedConversionError: "\xE8" from ASCII-8BIT to UTF-8

我正在尝试寻找一个支持各种编码来重现错误的 HTTP 请求模拟器,但我运气不佳。

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

【问题讨论】:

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


    【解决方案1】:

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

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

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

    如果有一些奇怪的客户端使用了一些无法识别的奇怪编码,我会说这可能是您的网络服务器、您的配置或类似问题的严重问题。 ...或者文件本身的编码格式与您读取它们时使用的格式不同。

    ...最后,我相信几乎所有 HTTP 客户端都支持多种正文编码。

    编辑:

    既然你提到了网址:

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

    对 URL 和无效字符使用奇怪的编码是客户端错误,应该在客户端恕我直言。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2018-05-29
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2016-11-19
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多