给定一个在 Ruby 1.9 上运行的 rails 3.2 应用程序:
我收到了传入的数据(从我无法控制的外部服务发布),这些数据来自一个帖子,其中的参数用 ISO-8859-1 编码,内容类型中没有指定编码(application/x-www-form -urlencoded)。
根据HTTP1.1 规范,这可以解释为有效,但我无法控制(如果他们在内容类型中指定编码,它肯定是 100% 有效的)
但是,rails 3 似乎自动假定为 UTF-8。所以任何非ASCII字符都会给我错误。有什么好的方法可以解决这个问题吗?(不仅仅是在检查中进行黑客攻击并在操作中重新转换?)
PS:如果有帮助,这是一个调用错误的测试片段:
post "incoming", {'content'=>"some content with a pound-sterling sign encoded like this: \xA3 "}