您好,登錄后才能下訂單哦!
在利用表單提交數據時發現,獲得的中文參數會發生亂碼,解決方法如下:
<body> <% String s=request.getParameter("uname"); s = new String(s.getBytes("ISO-8859-1"),"utf-8");//解決亂碼問題 %> <%=s %> </body>
s = new String(s.getBytes("ISO-8859-1"),"utf-8");此程序的作用是將接收到的的參數先轉化為字節碼文件,然后進行utf-8編碼。
防止中文亂碼的總結:
1、對于同一個應用,最好統一編碼,推薦為UTF-8,當然GBK也可以。
2、正確設置JSP的pageEncoding="UTF-8"
3、在所有的JSP/Servlet中設置contentType="text/html;charset=UTF-8"或response.setCharacterEncoding("UTF-8"),從而間接實現對瀏覽器編碼的設置。
4、對于非表單提交的get或url請求,可以修改Tomcat的默認配置,推薦將useBodyEncodingForURI參數設置為true,也可以將URIEncoding參數設置為 UTF-8(有可能影響其他應用,所以不推薦)。或者用下面的方法,在接收數據時處理:
request.getParameter("userID"),得到userID的值
request.getParameter("userID").trim()將這個值去掉兩邊的空格
request.getParameter("userID").trim().getBytes("ISO-8859-1"))將這個String用ISO-8859-1編碼成一個字節數祖
new String(request.getParameter("userID").trim().getBytes("ISO-8859-1"),"utf-8")將剛才的字節數祖傳進string的構造函數按照"utf-8"編碼創建一個string對象。
5.使用URLEncoder的方法
傳參前用:
//使用指定的編碼機制將字符串轉換為 application/x-www-form-urlencoded 格式
String username_encoder = URLEncoder.encode(username,"UTF-8");
接參數后顯示用:
//使用指定的編碼機制對 application/x-www-form-urlencoded 字符串解碼
String username_decoder = URLDecoder.decode(request.getParameter("username"),"UTF-8");
免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。