4

我正在尝试通过接受一些关键字作为 GET 请求来构造搜索方法。

例如,“文章/搜索/计算机”可能会搜索具有关键字计算机的文章。

现在,如果搜索词包含一些其他语言,例如韩语单词,rails 应用程序会生成以下页面。

Internal Server Error


"\x80" on CP949

WEBrick/1.3.1 (Ruby/1.9.2/2011-02-18) at hanun.com:3000

并且服务器的日志如下

[2011-05-15 19:58:05] ERROR Encoding::InvalidByteSequenceError: "\x80" on CP949

我在 7 号窗口中,使用 ruby​​ 1.9.2p180,rails 3.0.5。我正在使用 webrick 作为开发服务器。如何解决此问题,以便 rails 应用程序将接受非字母数字字符作为 url 字符串?

这个网址确实有效:http: //127.0.0.1/articles ?search =한국

但是,以下网址不起作用:http: //127.0.0.1/articles/search /한국

4

2 回答 2

2

好的,问题不是来自rails,而是来自操作系统。在 Windows 中,如果在 rails 应用程序中作为速记 url 出现,则任何非字母字符都不会在 url 中被接受。在linux中,它工作正常。这只发生在轨道上。

请注意,此问题仅发生在 Webrick && windows 7 && rails 环境中。

于 2011-06-08T20:41:32.917 回答
0

通过http发送的URLS只能是基本的ascii,见http://www.w3schools.com/tags/ref_urlencode.asphttp://www.w3.org/Protocols/rfc2616/rfc2616-sec3.html

本质上,您的网址变为:http: //127.0.0.1/articles/search/%26%2354620%3B%26%2344397%3B

于 2011-05-16T01:55:22.267 回答