Ruby on Rails在url中转义元音变音

时间:2011-04-14 13:13:34

标签: ruby-on-rails-3 url escaping diacritics

我尝试将一些包含变音符号的参数发布到url(PHP脚本)。所以我要逃避参数。但是Ruby给了我一个意想不到的字符串。

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设置的。我的错在哪里或我应该怎么做?

Thanx andi

2 个答案:

答案 0 :(得分:2)

欢迎来到精彩的String编码世界。如您所述,Ruby配置为UTF-8,而您的PHP安装看起来像是尝试使用ISO 8859-1进行编码。

要解决此问题,您需要确保两个脚本都使用相同的编码进行操作,或者将URL参数从UTF-8显式转换为ISO 8859-1。

答案 1 :(得分:-1)

也许你应该使用这样的东西:

CGI.escape("äöü")

如果您遇到错误,请先尝试要求'cgi'