Как приложение rails может принимать не буквенно-цифровые символы в URL? - PullRequest
4 голосов
/ 16 мая 2011

Я пытаюсь сконструировать метод поиска, принимая некоторые ключевые слова в качестве запроса GET.

Например, "Articles / Search / Computer", вероятно, будет искать статьи с ключевым словом computer.

Теперь, если поисковый термин содержит некоторые другие языки, такие как корейское слово, приложение 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, с рубином 1.9.2p180, рельсами 3.0.5.Я использую Webrick в качестве сервера разработки.Как решить эту проблему, чтобы приложение rails могло принимать не алфавитно-цифровые символы в виде строки URL-адреса ??

Этот URL-адрес работает: http://127.0.0.1/articles?search=한국

Однако следующий URL-адрес не работает:http://127.0.0.1/articles/search/한국

Ответы [ 2 ]

2 голосов
/ 09 июня 2011

Хорошо, проблема была не в рельсах, а в ОС. В окнах любые не алфавитные символы не будут приняты в URL, если он появился как сокращенный URL в приложении rails. В линуксе работает нормально. Это происходит только с рельсами.

Обратите внимание, что эта проблема возникает только в среде Webrick && windows 7 && rails.

0 голосов
/ 16 мая 2011

URL-адреса, отправленные через http, могут быть только базовыми, см. http://www.w3schools.com/tags/ref_urlencode.asp или http://www.w3.org/Protocols/rfc2616/rfc2616-sec3.html

По сути, ваш URL становится: http://127.0.0.1/articles/search/%26%2354620%3B%26%2344397%3B

...