Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/ruby-on-rails/65.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 防止rails转义url参数中的特殊字符_Ruby On Rails_Escaping - Fatal编程技术网

Ruby on rails 防止rails转义url参数中的特殊字符

Ruby on rails 防止rails转义url参数中的特殊字符,ruby-on-rails,escaping,Ruby On Rails,Escaping,我有如下要求: /活动/info/2.json?query=campaign_info&resource=2&ts=1355348205&sig=%2B%5Cx97%5Cx19D%5C%22%5Cx15%5B%5CxE7J%5CtyTiA*%3D%3A%2B%5CxCE'8q%5CxF9%20Fl%24B%5Cx8D%5Cx118%5Cr%25%5CxFC%5CxFC%5cxf98-%5CxA33%5cxfxf4%5Cx0F!w%24%5CxD4M%5Cx1D%5CxE5J%2B%5Ce%5Cx

我有如下要求:

/活动/info/2.json?query=campaign_info&resource=2&ts=1355348205&sig=%2B%5Cx97%5Cx19D%5C%22%5Cx15%5B%5CxE7J%5CtyTiA*%3D%3A%2B%5CxCE'8q%5CxF9%20Fl%24B%5Cx8D%5Cx118%5Cr%25%5CxFC%5CxFC%5cxf98-%5CxA33%5cxfxf4%5Cx0F!w%24%5CxD4M%5Cx1D%5CxE5J%2B%5Ce%5Cx94%5B%5Cx8J%5Cx1A%5CxB8g%5Ca%5D0%3Bf

当我的rails服务器收到此请求时,它将params[:sig]确定为:

+\\x97\\x19D\\\"\\x15[\\xE7J\\tyTiA*=:+\\xCE'8q\\xF9 Fl$B\\x8D\\x118\\r%\\xFC\\x98-\\xA33\\xF4\\x0F!w$\\xD6d4m\\x1D\\xE5J+\\e\\x94[\\x88j\\x1A\\xB8g\\a]0;f
+\x97\x19D\"\x15[\xE7J\tyTiA*=:+\xCE'8q\xF9 Fl$B\x8D\x118\r%\xFC\x98-\xA33\xF4\x0F!w$\xD6d4m\x1D\xE5J+\e\x94[\x88j\x1A\xB8g\a]0;f
当我真的希望params[:sig]为:

+\\x97\\x19D\\\"\\x15[\\xE7J\\tyTiA*=:+\\xCE'8q\\xF9 Fl$B\\x8D\\x118\\r%\\xFC\\x98-\\xA33\\xF4\\x0F!w$\\xD6d4m\\x1D\\xE5J+\\e\\x94[\\x88j\\x1A\\xB8g\\a]0;f
+\x97\x19D\"\x15[\xE7J\tyTiA*=:+\xCE'8q\xF9 Fl$B\x8D\x118\r%\xFC\x98-\xA33\xF4\x0F!w$\xD6d4m\x1D\xE5J+\e\x94[\x88j\x1A\xB8g\a]0;f
如何获得第二个输出

谢谢。

我终于做到了:

while str.gsub!(/[^0-9A-Za-z]/, ''); end

但因为我只需要0-9和a-z。希望这有帮助

由于历史原因,双反斜杠是必要的。所以,这是不可避免的。但是,这取决于你的使用目的。若您只在视图中显示它,那个么它不会显示为双斜杠。如果它以某种方式显示,那么您可以使用html_safe在视图中显示。另一方面,如果您将其用于内部目的,即模型或控制器,则无需仅为了显示而将\\替换为\即可。