$.post和String转流时引起乱码及解决办法

参考脚本之家:网址:http://www.jb51.net/article/42801.htm


1  $.post引起乱码原因

在火狐下正常,但是在IE和谷歌下不正常。页面虽然设置了属性为UTF-8,但还是有问题。需要设置如下:



$.ajaxSetup({
  contentType: "application/x-www-form-urlencoded; charset=utf-8"
});
$.post("test.php", { name: "i5a6", time: "2pm" },
   function(data){
     process(data);
   }, "json");


或者

        $.ajax({
            url:"XX",
            type:"POST",
            data:{"repoName":"库名","content":"内容"},
            contentType:"application/x-www-form-urlencoded; charset=utf-8",
            dataType:"json",
            success: function(data,state){
                alert(data.result.repoRight);
            }
        })


因为jquery ajax是使用utf-8来编码发送数据的,ie在发送时却没加上charset=utf-8,从而导致乱码(IE默认使用iso-8859-1编码)


2 String转输入流时,如果不指定编码方式,则默认为JVM采用的编码方式,正确如下  

InputStream is = new ByteArrayInputStream(inputPathContent.getBytes()); //没有指定编码方式,则会采用系统 JVM采用的方式,进而产生乱码,且该错误不容易被发现。

InputStream is = new ByteArrayInputStream(inputPathContent.getBytes("UTF-8"));  //指定编码方式

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值