您的位置:首页 > 编程语言 > Java开发

警告: Parameters: Character decoding failed. Parameter skipped. java.io.CharConversionException: isHex

2014-10-12 17:23 501 查看
警告: Parameters: Character decoding failed. Parameter skipped.

java.io.CharConversionException: isHexDigit

用Ajax获取Kindeditor的textarea的值的时候要用name标记,因为这样不会出现JS浏览器兼容的问题

例如:

<span style="font-size:18px;">var v_zsContext=$("TEXTAREA[name='zsContext']").val();</span>


那么问题来啦?

利用Ajax向服务器传送大量数据有可能传不完整

例如:

$.getJSON(resUrl, {
profe:chk_value,
email:v_email,
oldPwd:old_pwd,
newPwd1:new_pwd1
},function(data){
if(data==0){
$('.info').eq(2).children().last().children("span").text('旧密码不正确,请重新输入!');
}
if(data==1){
alert('修改成功');
}
if(data==0){
alert('修改失败');
}
});


当变量的值大的时候传不完整,这是怎么办?别担心有办法!!

$.ajax({
type:"POST",
url:speUrl,
data:"speReskey="+v_speReskey+"&speTitle="+v_speTitle+"&zsTitle="+v_zsTitle+"&zsContext="+v_zsContext+"&speType="+v_speType,
success: function(msg){
var data=JSON.parse(msg);
if(data.type==0){
alert("保存成功!");
$("#speReskey").val(data.speReskey);
}else{
alert("保存失败!");
}
}
});


注意type一定要用POST,因为GET有字节限制,但是用$.ajax返回过来的时msg是String类型,所以要把String转化为Json类型

例如:

var data=JSON.parse(msg);
if(data.type==0){
alert("保存成功!");
$("#speReskey").val(data.speReskey);
}else{
alert("保存失败!");
}


还有一点特别注意:

v_zsContext=encodeURI(v_zsContext);
v_zsContext=encodeURI(v_zsContext);
数据要经过两次的转换,一次不行,但是此方法有缺陷,对于编辑器插入的表格不能完整的传入数据库,所以采用:

v_zsContext=encodeURIComponent(v_zsContext);
v_zsContext=encodeURIComponent(v_zsContext);
这样就可以了,但是后台得到的都是%3Ctable%20style%3D%22width%3A100%25%3B%22%20bo这样的字符,如果想存入数据库的数据为能看懂的汉字,需要在后台处理一下:

String zsContext=request.getParameter("zsContext");
zsContext = java.net.URLDecoder.decode(zsContext,"UTF-8"); 
OK,打完收工!
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息