Javascript传递中文参数到Java后端

1. 背景

一般不建议从前台往后端传递中文参数,但是有些时候这件事是难免的,比如网页中按关键字搜索时。

传递中文参数往往会遇到乱码问题,此处给出后端为Java时的示例代码。

2. 前端编码

为防止中文参数乱码,可以在传递前对参数进行编码,如下:

var keyword=$("#input-keyword").val();//获取输入框的值
var encodedKeyword=encodeURIComponent(keyword);//实现编码

3. 参数传递

通过ajax将参数传递到后端,示例如下:

	$.ajax({
			timeout:20000,
			type:"POST",
			dataType:"JSON",
			url:"/search.do",
			data:encodedKeyword,
			success:function(msg){
				console.log(msg);
			}
	});

4. 后端解码

	String encodedKeyword=req.getParameter("encodedKeyword");//此处Servlet会自动解码一次,默认是以ISO-8859-1进行解码
	try {
		String keyword= URLDecoder.decode(encodedKeyword , "UTF-8");//此处按UTF-8进行解码
	} catch (UnsupportedEncodingException e) {
		e.printStackTrace();
	}

如有问题请扫码联系我
在这里插入图片描述

已标记关键词 清除标记
©️2020 CSDN 皮肤主题: 代码科技 设计师:Amelia_0503 返回首页