我的一些网址上有一些特殊字符。例如:
http://blabla.com/title/?t=burası
当我从其他页面提供指向该页面的链接时,我使用:
URI.encode(s)
这产生了这个链接:
/title/?t=buras%C4%B1
虽然到目前为止一切正常,但我在页面上还有另一个表单,其中包含编码的 url。但是当用户访问时浏览器倾向于解码我编码的 url/title/?t=buras%C4%B1
并将 url 转换为/title/?t=burası
. 问题从这里开始,因为当用户尝试从“burası”页面上的表单发送内容时,sinatra 给出了错误:
ERROR URI::InvalidURIError: bad URI(is not URI?): http://localhost:3000/title/?t=burası
我认为这是因为 HTTP 请求的“引荐来源”字符串,但只要浏览器倾向于自动解码字符串,我就找不到任何解决方法。