关于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");
我的这个问题到底从哪里改呢?
展开
 我来答
匿名用户
2015-03-25
展开全部

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

kasim416
2015-03-25 · TA获得超过707个赞
知道小有建树答主
回答量:351
采纳率:100%
帮助的人:294万
展开全部
楼主你好
刚才我自己做了个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的。那么要是用户的浏览器编码也没有设置好的话,是不是还是会乱码?
本回答被提问者采纳
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式