页面传入后台出现汉字乱码解决办法

 

页面传入后台出现汉字乱码解决办法

 

 

一、如果使用iframe,将参数传入后台处理,如果出现汉字乱码

页面中的iframe:

<iframe id="UserInfoIframe" name="UserInfoIframe" style="display: none"></iframe>

js方法中:

var _$param="userName="+Name+"&userID="+Id;//Name为汉字

 _$param=encodeURI(_$param);

 _$param=encodeURI(_$param);

var destUrl="/xxx/GetUserInfo_getInfo.action?"+_$param;

document.getElementByIdx("UserInfoIframe").src=destUrl;

后台处理:

String userName=request.getParameter("userName");

try {

       userName=java.net.URLDecoder.decode(userName,"UTF-8");

}catch (UnsupportedEncodingException e) {

    log4j.error(e.getMessage());

    e.printStackTrace();

}

 

也可以:

  js方法中不需处理;

  后台:

        String buttonName=request.getParameter("buttonName");

        buttonName = new String(buttonName.getBytes("GBK"),"UTF-8");

 

 

二、通过form表单提交到后台

    通过form传入后台,提交方式分为post和get两种。两者的区别需要通过提交表单后才看得出来,主要是在数据发送方式和接收方式上。Post和Get都是表单属性Method的可选值,Method的默认值为Get,两者的主要区别在于:

   1.在客户端,Get方式在通过URL提交数据,提交后在地址栏中的地址会出现传入到后台的参数;而Post提交后地址栏中的地址不会出现参数。

   2.在服务器端只能用Request.QueryString来获取Get方式提交来的数据,用Post方式提交的数据只能用Request.Form来获取。

    一般来说,尽量避免使用Get方式提交表单,因为有可能会导致安全问题。比如说在登陆表单中用Get方式,用户输入的用户名和密码将在地址栏中暴露无遗。但是在分页程序中,用Get方式就比用Post好。

    Get把参数添加到action属性指定的地址中,并以锚方式打开。

    Post通过HTTP post处理发送数据。

 

    如果将form中的参数含有汉字,提交到后台有可能也会出现乱码,一般如果method设置为“post”,将不会出现乱码,如果将method设置为“get”,可能在汉字传入到后台后会出现乱码问题。

 页面中的form:

<iframe id="userInfoIframe" name="userInfoIframe" style="display: none"></iframe>

<form id="userInfoForm" method="post" action="" target="userInfoIframe">

   <input type="hidden" id="pageSize" name="pageSize" value=""/>

   <input type="hidden" id="destPage" name="destPage" value=""/>

   <input type="hidden" id="condition" name="condition" value=""/>

</form>

转载于:https://my.oschina.net/iioschina/blog/1559914

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值