关于php后台获取前台post过来的json数据中文乱码的问题~
前端是这么写的:$.post("./feedback.php",{feedback:"你好"},function(data){alert(data);})后台是php写的...
前端是这么写的:$.post("./feedback.php",{feedback:"你好"},function(data){alert(data);})
后台是php写的:在feedback.php中,头上有写header("content-type:text/html; charset=utf-8");
$content=$_POST["feedback"];
echo $content;
然后用的是zend studio,也设置成utf-8了。
结果运行起来的时候,
就是这样子的乱码,当我前端json数据中是英文的话,能获取正确,就中文情况下,乱码了,这个问题如何解决。
我这个情况,在php中,我又添了这么一条语句:print_r(iconv_get_encoding());
结果是:
这条语句获取的应该是页面编码,它说我的页面编码是:ISO-8859-1,可是在我的头上有写:
<?php
header("content-type:text/html; charset=utf-8");
我的这个问题到底从哪里改呢? 展开
后台是php写的:在feedback.php中,头上有写header("content-type:text/html; charset=utf-8");
$content=$_POST["feedback"];
echo $content;
然后用的是zend studio,也设置成utf-8了。
结果运行起来的时候,
就是这样子的乱码,当我前端json数据中是英文的话,能获取正确,就中文情况下,乱码了,这个问题如何解决。
我这个情况,在php中,我又添了这么一条语句:print_r(iconv_get_encoding());
结果是:
这条语句获取的应该是页面编码,它说我的页面编码是:ISO-8859-1,可是在我的头上有写:
<?php
header("content-type:text/html; charset=utf-8");
我的这个问题到底从哪里改呢? 展开
2个回答
展开全部
楼主你好
刚才我自己做了个ajax试了一下,只要前台页面和后台页面都设定好UTF8就都没问题
而且似乎跟internal_encodeing,关系不大,如果想设置这些属性可以用这个方法
iconv_set_encoding("internal_encoding", "UTF-8");
楼主图中的编码明显是从UTF8变成GBK
建议楼主在输出前进行一次编码转换
mb_convert_encoding($str, "UTF-8", "GBK");再尝试输出
刚才我自己做了个ajax试了一下,只要前台页面和后台页面都设定好UTF8就都没问题
而且似乎跟internal_encodeing,关系不大,如果想设置这些属性可以用这个方法
iconv_set_encoding("internal_encoding", "UTF-8");
楼主图中的编码明显是从UTF8变成GBK
建议楼主在输出前进行一次编码转换
mb_convert_encoding($str, "UTF-8", "GBK");再尝试输出
追问
在输出前加了这条句子:mb_convert_encoding($str, "UTF-8", "GBK");结果还是一样,但是 当我用chrome,设置浏览器编码,设置为自动检测,就可以显示出 中文了。那这是说明我的代码没有问题吗?只要改浏览器编码就可以的了吗?我改浏览器编码的时候,发现它原来是gbk的。那么要是用户的浏览器编码也没有设置好的话,是不是还是会乱码?
本回答被提问者采纳
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询
广告 您可能关注的内容 |