【问题标题】:Encoding problems when passing parameters in url在url中传递参数时的编码问题
【发布时间】:2011-06-08 22:41:01
【问题描述】:
我正在编写一段 Javascript,它接收当前页面的标题,并将其发送到 Rails 3 应用程序中的表单。如果标题是这样的
Review - “Episode 20”
然后当我将该标题传递给我的表单时:
http://localhost:3000/notes/myform?title=Review - “Episode 20”
标题在我的表单中显示为
Review - �Episode 20�
我该如何解决这个问题?
【问题讨论】:
标签:
javascript
ruby-on-rails
ruby-on-rails-3
unicode
encoding
【解决方案1】:
或者使用 URI_escape:
enc_uri = URI.escape("http://example.com/?a=\11\15")
# => "http://example.com/?a=%09%0D"
【解决方案2】:
您可以使用encodeURI
console.log(encodeURI('Review - “Episode 20”'));
// "Review%20-%20%E2%80%9CEpisode%2020%E2%80%9D"
我不是 Ruby 专业人士,但我相信 Ruby 的解码方法是 CGI::unescape()