2012-05-28 104 views
4

我在我的一些網址上有一些特殊字符。例如:錯誤URI :: InvalidURIError:錯誤的URI(不是URI?),因爲瀏覽器

http://blabla.com/title/?t=burası

當我給予鏈接從其他網頁頁面,我用:

URI.encode(s) 

產生此鏈接:當一切正常

/title/?t=buras%C4%B1 

直到這一點,我也有另一種形式在頁面上有編碼的網址。但是,當用戶訪問/title/?t=buras%C4%B1並將網址變爲/title/?t=burası時,瀏覽器傾向於解碼我編碼的網址。這裏的問題開始,因爲當用戶試圖從「burası」網頁上的表格送東西,西納特拉給出了一個錯誤:

ERROR URI::InvalidURIError: bad URI(is not URI?): http://localhost:3000/title/?t=burası

我想這是因爲HTTP請求的「引用」字符串,但我只要瀏覽器傾向於自動解碼字符串,就找不到任何解決方法。

+0

你能提供一個最小的工作示例嗎?我無法重現 - 請參閱[Gist](https://gist.github.com/2891784)。 – jmdeldin

回答

3

您應該在FORM方法中編碼URI。

例如,讓你的HTML表單操作是這個樣子:

<form action="/title/?t=buras%C4%B1" method="post"> 

這是否爲您解決?

(編輯:謝謝x1a4的糾正 - 當然你是對的!:)

+0

你已經在你的例子中切換了'action'和'method'屬性。 – x1a4

相關問題