一、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) 。