关于java web项目中文乱码问题

    在开发java web项目时候,存在三种方式与后台交互:

1、form表单提交

2、window.location.href 跳转(这种方式与第一种类似)

3、异步交互

    在于后台的交互过程中免不了需要传输中文,前台界面输入中文,后台获取响应参数时候很容易出现中文乱码问题。

下面说明下不同交互方式解决中文乱码的方式,本文java web项目编码以UTF-8为例

    首先,页面的编码方式肯定是要指定的,在jsp中指定界面的编码方式:

<%@ page contentType="text/html; charset=UTF-8"%>

<html>下的<head>标签下加上:<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">

    即使指定了页面的编码方式,在后台获取参数的时候仍会遇到中文乱码问题

    其次,js中不同的请求方式,处理中文乱码方式不同:

    1、window.location.href 跳转

     在js方法中以window.location.href 的方式访问action,请求如下,参数goodsName为中文

window.location.href = contextRootPath + "/order/getOrderListForExport.action?startDate=" + startDate + "&endDate=" + endDate + "&goodsName" = goodsName;

     后台action中以  req.getParameter("goodsName") 获取出的参数就是中文乱码


     解决方案:

修改js中的请求参数  goodsName 为  encodeURI(encodeURI(goodsName))  如下:  (注意是encodeURI两次

window.location.href = contextRootPath + "/order/getOrderListForExport.action?startDate=" + startDate + "&endDate=" + endDate + "&goodsName=" + encodeURI(encodeURI(goodsName));

后台action获取参数方式

URLDecoder.decode(req.getParameter("goodsName"), "UTF-8")

    2、异步交互

    此处只涉及jquery异步交互,cardholderName是中文参数

$.ajax( {

url : contextRootPath + "/payment/XXXXXXXXX.action",

type : 'get',

contentType : "text/text;charset=UTF-8", 

cache: false,

data : {cardholderName:cardholderName},

success : function(resp) 

{


},

error : function(xhr, status, errorThrown) 

{

errorMsg("errorThrown=" + errorThrown);

}

});

     后台action获取参数request.getParameter("cardholderName")也是中文乱码

解决方案:

修改js中的请求参数

data : {cardholderName:encodeURIComponent(cardholderName)},

后台action获取参数方式

URLDecoder.decode(request.getParameter("cardholderName"), "UTF-8")

  • 1
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值