Ruby on Rails转义url中的小写字母



我尝试将一些包含变音符的参数发布到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。我的错在哪里?我该怎么办?

谢谢安迪

欢迎来到字符串编码的奇妙世界。正如您所注意到的,Ruby配置为UTF-8,而您安装的PHP看起来像是在尝试使用ISO 8859-1进行编码。

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

也许你应该这样写:

CGI.escape("äöü")

如果你得到一个错误尝试要求'cgi'之前。

相关内容

  • 没有找到相关文章

最新更新