关于php后台获取前台post过来的json数据中文乱码的问题~

前端是这么写的:$.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");
我的这个问题到底从哪里改呢?

header不设置都可以,但是feedback.php文件编码格式要改成utf8的,注意:是文件的编码格式

温馨提示:内容为网友见解,仅供参考
第1个回答  2015-03-25
楼主你好
刚才我自己做了个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的。那么要是用户的浏览器编码也没有设置好的话,是不是还是会乱码?

本回答被提问者采纳
相似回答