2009-01-14 35 views
2

我有一個jsp包含一個表單,當servlet接收到來自英鎊符號(£)形式的參數時,會發送一個servlet到下面的字符。所以£變成£。是什麼導致了這一點,我該如何繞過它?轉義特殊字符發佈到Servlet

回答

2

這聽起來很像一個字符編碼問題。包含井號的響應正在以UTF-8字符集發送,但正在用不同的字符集(可能是ISO-8859-1)進行解釋。

檢查您爲JSP指定的字符編碼,如果問題仍然存在,請使用嗅探器來調查表單發佈的響應,尤其是指定的任何字符集。默認情況下,表單應該使用與它所服務的頁面相同的字符集,所以您應該能夠通過檢查頁面的字符集來控制它。

+0

它將作爲UTF-8發送並讀取爲ISO-8859-1,這可能是服務器上的默認代碼頁。確保爲所有JSP頁面使用單一編碼(<%@ page pageEncoding)並形成讀取(request.setCharacterEncoding)以保持一致性 - UTF-8幾乎總是最好的。 – bobince 2009-01-15 00:48:12

1

你可以做的是,在你的JSP頁面中,在從請求對象中檢索之前,爲你的請求設置內容類型。 request.setCharacterEncoding(「utf-8」);]

現在你可以做request.getParameter(「yourParamName」);

我也遇到了同樣的問題&解決如上所述。