ajax前台传入后台中文乱码,解决Ajax前台中文传到后台出现中文乱码

遇到的问题是: 前台利用Ajax, get方式向后台发送中文数据出现乱码.

解决办法是前台两次编码, 后台一次解码即可.

前台jsp文件

1 var text = "张三";

3 var username = encodeURI(encodeURI(text));

后台servlet代码

String username =URLDecoder.decode("对应字段","utf-8");

简单登录校验案例.

案例说明:为验证Ajax请求后端控制台中文乱码问题是否解决.

简单登录界面, 用户输入用户名登录. 若用户名未输入用户名则提示"用户名不能为空";若用户名输入为"张三"则提示用户名已被占用.其它均无提示.

前台页面index.jsp

Created by IntelliJ IDEA.

User: hejjon

Date: 2019/6/3

Time: 10:19

To change this template use File | Settings | File Templates.

--%>

String path = request.getContextPath();

String basePath = request.getScheme() + "://" + request.getServerName() + ":" + request.getServerPort()

+ path + "/";

%>

用户登录界面

var xhr;

function change() {

var val = document.getElementById("uname").value;

var uname = encodeURI(encodeURI(val));

if (uname === "") {

document.getElementById("namespan").innerHTML = "用户名不能为空";

} else {

// 创建xhr对象

xhr = new XMLHttpRequest();

// 与服务器建立连接

xhr.open("get", "servlet/login?uname=" + uname, true);

// 执行回调函数

xhr.onreadystatechange = process;

// 发送数据

xhr.send(null);

}

}

function process() {

if (xhr.readyState == 4 && xhr.status == 200) {

// 接收后台响应

var text = xhr.responseText;

document.getElementById("namespan").innerHTML = text;

}

}

用户:

密码:

后台LoginServlet.java

import javax.servlet.ServletException;

import javax.servlet.annotation.WebServlet;

import javax.servlet.http.HttpServlet;

import javax.servlet.http.HttpServletRequest;

import javax.servlet.http.HttpServletResponse;

import java.io.IOException;

import java.io.PrintWriter;

import java.net.URLDecoder;

@WebServlet("/servlet/login")

public class LoginServlet extends HttpServlet {

@Override

protected void service(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException {

// 设置后台响应文本格式

resp.setContentType("text/html;charset=utf-8");

// 接收前台请求

String uname = URLDecoder.decode(req.getParameter("uname"));

// System.out.println(uname);

PrintWriter out = resp.getWriter();

if ("张三".equals(uname)) {

out.print("用户名已被占用");

} else {

out.print("用户名可用");

}

}

}

解决Spring boot中读取属性配置文件出现中文乱码的问题

问题描述: 在配置文件application.properties中写了 server.port=8081 server.servlet.context-path=/boy name=张三 age=2 ...

如何解决jQuery easyui中locale文件下easyui-lang-zh_CN中文乱码问题

1.在保存eclipse项目的目录下找到引入easyui-lang-zh_CN.js 2.用记事本打开该js文件,若打开后的中文正常,直接复制,粘贴到项目中的该js文件中,保存 3.若打开后中文出现乱 ...

resin后台输出中文乱码的解决办法!

resin后台输出中文乱码的解决办法! 学习了:https://blog.csdn.net/kobeguang/article/details/34116429 编辑conf/resin.con文件: ...

解决ubuntu中zip解压的中文乱码问题

转自解决ubuntu中zip解压的中文乱码问题 在我的ubuntu12.10中,发现显示中文基本都是正常的,只有在解压windows传过来的zip文件时,才会出现乱码.所以,我用另一个方法解决中文乱码 ...

resin后台输出中文乱码的解决的方法!

近期从tomcat移植到resin,发现这东西不错啊! 仅仅是后台输出时有时候中文会乱码. 如今找到resin后台输出中文乱码的解决的方法: 编辑conf/resin.con文件:

  • 1
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值