我尝试将一些包含变音符号的参数发布到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
答案 0 :(得分:2)
欢迎来到精彩的String编码世界。如您所述,Ruby配置为UTF-8,而您的PHP安装看起来像是尝试使用ISO 8859-1进行编码。
要解决此问题,您需要确保两个脚本都使用相同的编码进行操作,或者将URL参数从UTF-8显式转换为ISO 8859-1。
答案 1 :(得分:-1)
也许你应该使用这样的东西:
CGI.escape("äöü")
如果您遇到错误,请先尝试要求'cgi'。