Ruby on rails 3 Ruby on Rails在url中转义umlauts
我尝试将一些包含umlauts的参数发布到url(PHP脚本)。所以我必须避开这些参数。但是Ruby返回了一个意外的字符串 PHP: 输出:%E4%F6%FC 和RoR:Ruby on rails 3 Ruby on Rails在url中转义umlauts,ruby-on-rails-3,url,escaping,diacritics,Ruby On Rails 3,Url,Escaping,Diacritics,我尝试将一些包含umlauts的参数发布到url(PHP脚本)。所以我必须避开这些参数。但是Ruby返回了一个意外的字符串 PHP: 输出:%E4%F6%FC 和RoR: URI.escape("äöü") 输出:%C3%A4%C3%B6%C3%BC 或: 输出:%C3%A4%C3%B6%C3%BC 我在Rails 3.0.5和Ruby 1.9.2上工作,我的应用程序是为UTF-8设置的。我的错在哪里?我该怎么办 Thanx andi也许你应该用这样的东西: CGI.escape("äöü")
URI.escape("äöü")
输出:%C3%A4%C3%B6%C3%BC
或:
输出:%C3%A4%C3%B6%C3%BC
我在Rails 3.0.5和Ruby 1.9.2上工作,我的应用程序是为UTF-8设置的。我的错在哪里?我该怎么办
Thanx andi也许你应该用这样的东西:
CGI.escape("äöü")
如果您遇到错误,请尝试在之前要求使用“cgi”。欢迎来到字符串编码的奇妙世界。正如您所指出的,Ruby是为UTF-8配置的,而您的PHP安装看起来像是在尝试使用ISO8859-1进行编码
要解决这个问题,您需要确保两个脚本都使用相同的编码进行操作,或者显式地将URL参数从UTF-8转换为ISO 8859-1。与URI的结果相同。这应该可以工作。即使在那里,你也得到了同样的结果。很抱歉,如果我使用了链接中给出的字符串,那么这两个字符串(PHP和RoR)是相同的。。。非常感谢,丹!我期待着这样的事情。现在我正在使用:
CGI.escape(Iconv.conv('ISO-8859-1','utf-8','äöü'))
CGI.escape("äöü")
CGI.escape("äöü")