比如我通过ajax读取一个test.php文件,这个文件里返回的是json格式的字符串,里面带有中文,然后我把这个文件扔到不同操作系统下面,我从浏览器直接执行这个php文件,结果是,在windows下面跑的会把中文进行16进制转换,也就成这种格式:\u8377\u7ea2\u8272
而在linux下面跑的直接就是中文,请问这是什么原因导至的

解决方案 »

  1.   

    应该与浏览器有关系,目前应该所有浏览器都会将返回字符串当UTF-8处理。
    另外楼主说的问题可能是json_encode在不同操作系统中结果不一样导致,你看看页面源代码是不是\uxxx
      

  2.   

    然后我把这个文件扔到不同操作系统下面,我从浏览器直接执行这个php文件
    -------------------不理解这句话, 扔? 从浏览器直接执行php? 前面说是josn ? 
      

  3.   

    不应该出现这种现象,因为php的json_encode函数要求传入的参数必须是utf-8编码的。除非是你自己编写的json函数。由“在windows下面跑的会把中文进行16进制转换,也就成这种格式:\u8377\u7ea2\u8272 ”
    可知,你的编码是uncode的
      

  4.   

    程序员在武汉群(一)
    58149016
    探讨VC/JAVA/C#/PHP/ASP、ASP.net/Perl应用开发技术,欢迎加入!
      

  5.   

    编码的问题 json 需要是 utf-8 的