Ruby on Rails убегает умлаутс в URL - PullRequest
2 голосов
/ 14 апреля 2011

Я пытаюсь опубликовать некоторые параметры, содержащие умлауты, в URL (PHP Script). Так что я должен избежать параметров. Но Руби возвращает мне неожиданную строку.

PHP:

urlencode("äöü");

выход:% E4% F6% FC

и RoR:

URI.escape("äöü")

выход:% C3% A4% C3% B6% C3% BC

или

CGI.escape("äöü")

выход:% C3% A4% C3% B6% C3% BC

Я работаю над Rails 3.0.5 и Ruby 1.9.2, и мое приложение настроено для UTF-8. Где моя вина или что мне делать?

Спасибо andi

Ответы [ 2 ]

2 голосов
/ 14 апреля 2011

Добро пожаловать в удивительный мир Строковых кодировок. Как вы заметили, Ruby настроен для UTF-8, тогда как ваша установка PHP выглядит так, как будто он пытается кодировать с использованием ISO 8859-1.

Чтобы решить эту проблему, вам необходимо убедиться, что оба ваших сценария работают с использованием одной и той же кодировки, или явно преобразовать параметры URL-адреса из UTF-8 в ISO 8859-1.

0 голосов
/ 14 апреля 2011

Может быть, вы должны использовать что-то вроде этого:

CGI.escape("äöü")

Если вы получили ошибку, попробуйте потребовать 'cgi' до.

...