1. 程式人生 > >jsp中url傳參中文引數在字符集轉換後仍然有部分字元為問號的情況解決。

jsp中url傳參中文引數在字符集轉換後仍然有部分字元為問號的情況解決。

問題:

<a class="a_ope" href="HitInfoQueryServlet?query_type=detail&music_singer=海明威">詳細</a>通過點選連線通過url傳遞中文引數

在HitInfoQueryServlet中隊url的中文引數進行大多數人建議的字符集轉換

程式碼如下:new String(singer.toString().trim().getBytes("iso8859-1"),"utf-8") tomcat預設字元為iso8859-1

但是發現轉換後中文字串變為“海明?”的格式,中文引數還是出現問題。

解決:

把原來的連線改成<a class="a_ope" href="HitInfoQueryServlet?query_type=detail&music_singer=<%=URLEncoder.encode("海明威","utf-8") %>">詳細</a>

然後servlet中的程式碼不變,仍然進行字符集轉換即可

當然在此例下前提條件為:

response.setCharacterEncoding("UTF-8");
request.setCharacterEncoding("UTF-8");
response.setContentType("text/html;charset=UTF-8");

如果要換成其他字符集 直接把utf-8 替換稱自己所需的字符集即可