Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/url/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Ruby on rails 3 Ruby on Rails在url中转义umlauts_Ruby On Rails 3_Url_Escaping_Diacritics - Fatal编程技术网

Ruby on rails 3 Ruby on Rails在url中转义umlauts

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("äöü")

我尝试将一些包含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("äöü")

如果您遇到错误,请尝试在之前要求使用“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("äöü")