java程序中前台后中文编码的问题

来源:互联网 发布:网络对唱歌曲大全 编辑:程序博客网 时间:2024/06/01 10:52

在开发过程中发现,IE对于ajax传入的url中的中文参数是可以自动进行解码的,但是在前台的html的text中编写的汉字,前后台如果对于写入的content不进行编码和解码,导致在后台中会出现乱码的情况。

一、ajax中传入的参数是中文的可以不进行编码(最好也进行编码解码一下):

js中部分代码:

function getZxftUrl(){
$.ajax({
url : "/services/JdzWebservice/initCjqHdjlNewList?response=application/json",
type : "get",
dataType : "json",
success : function(data) {
var msg = $.parseJSON(data['return']);
if(msg.isuseurl=="1"){
document.getElementById("zxft").href = msg.url;
}else{
document.getElementById("zxft").href = "/jdzfrontpage/jdzcjqmh/zxftCjqSubmit.jspx?meetingroomGuid=" + msg.id1+"&dsname="+"昌江区门户网站改版";
}
}
});
}

对应action:

@Override
public void pageLoad() {
ZxftFrontPageService zxftFrontPageService=null;
try{
unitName = JsfHelper.getRequestParameter("dsname");
meetingroomGuid = JsfHelper.getRequestParameter("meetingroomGuid")
;

..........

二、前台html页面中text文本传入的content需要进行编码,后台转码:

js代码:

function mydadd() {
var ii = layer.load('加载中');
var myd = document.getElementsByName('myd');
var mydvalue = "";
for (var i = 0; i < myd.length; i++) {
if (myd[i].checked) {
mydvalue = myd[i].value;
}
}
var mydcontent = document.getElementById("mydcontent").value;
if (mydcontent == "") {
layer.close(ii);
alert("请填写完整!");
return;
}
if (mydcontent != "" && mydcontent.length > 500) {// 限制字数
layer.close(ii);
alert("字数超出限制!");
return;
}
var rtndata = "mydvalue=" + mydvalue + "&mydcontent=" + encodeURIComponent(mydcontent)
+ "&historyguid=" + new ServiceUtil().RequestString("historyguid");
$.ajax({
type : "get",
url : "/services/JdzWebservice/MyCjqAdd?response=application/json",
data : rtndata,
dataType : "json",
success : function(data) {
if (data != null && data != "") {
var msgvalue = data['return'];
if ("success" == msgvalue) {
alert("提交成功");
window.location.reload();
} else if ("error" == msgvalue) {
layer.close(ii);
alert("提交失败");
}


}
}
});
}

后台:


0 0