一、jsp傳中文參數Java後臺獲取亂碼解決辦法
參考:https://blog.csdn.net/qijia_yang/article/details/49819359
//jsp傳中文參數中文亂碼問題
encodeURIComponent(encodeURIComponent(String))//js部分
String str = java.net.URLDecoder.decode(request.getParameter("strByJsp"),"UTF-8");//Java取數部分
這個方法很好用,js中編碼,然後在後臺解碼。
二、java表單提交中文亂碼的解決方法
參考http://www.jb51.net/article/94442.htm
如姓名輸入中文
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
|
<%@ page language="java" import="java.util.*" pageEncoding="UTF-8"%> < html > < head > < title >servlet演示</ title > </ head > < body > < h2 >中文亂碼</ h2 > <!-- /servletDemo_1/encode最好用絕對目錄,因爲index.jsp位置可能會更改 --> < form action = "/servletDemo_1/encode" method = "post" > 姓名:< input type = "text" name = "name" />< br /> 密碼:< input type = "password" name = "pwd" /> < br /> < input type = "submit" value = "登陸" /> </ form > </ body > </ html > |
處理方式:
1、獲取參數之前設置:request.setCharacterEncoding("utf-8"),且form表單設置成POST方式提交。如果action中不方便獲取req,可以在jsp頁面頭部加上代碼段“<%=request.setCharacterEncoding("utf-8");%>”。
2、action寫成下面這樣的參數傳遞即可:
public ModelAndView personalRegister(HttpServletRequest request,@RequestParam("file") MultipartFile file,String PNAME ,String PCODEID, String PACCOUNT,String PPASS, String PPHONE,String PEMAIL) 。