我已将php的exe路径添加到了环境变量的path中,且可以正常运行php -v, php -?等命令php代码 (test.php):<meta http-equiv="charset" content="UTF-8"><?phpif (1=='1')
    echo "a";
else
    echo "b";?>
cmd中的命令为;
1. 切换至test.php目录下
2. 运行 php -f test.php输出结果为:锘?meta http-equiv="charset" content="UTF-8">a
我试了很多次,发现只有首字符会变乱码,请问是什么原因导致的,如何修正呢?
还有,为什么连html代码都输出了呢?
谢谢!!

解决方案 »

  1.   

    在浏览器中是正常的,输出只有一个a
    我附上我的php -v的信息:PHP 5.3.8 (cli) (built: Aug 23 2011 11:50:20)
    Copyright (c) 1997-2011 The PHP Group
    Zend Engine v2.3.0, Copyright (c) 1998-2011 Zend Technologies
        with Xdebug v2.1.2, Copyright (c) 2002-2011, by Derick Rethans
    ps,
    我的php是跟随wmap一起安装的
    环境:
    windows操作系统是英文的sp3
    test.php的编码格式是UTF-8
    浏览器的编码格式也是UTF-8设置cmd运行php的主要目的是想在vim中一键运行,也懒得在浏览器之间切来切去
      

  2.   

    我刚才试了一下-r命令,发现:
    >php -r test1.php
    PHP Parse error:  syntax error, unexpected $end in Command line code on line 1Parse error: syntax error, unexpected $end in Command line code on line 1、说首行有异常的$end神马是异常的$end呢?
    源码是肯定没有添加的是vim自己生成的么?
      

  3.   

    这个问题以前在国外论坛上看到过,某人操作系统语言是乌克兰文,编程软件是英文,后来另某人如下解答。至少这个方法对我有用。<meta http-equiv="charset" content="UTF-8"> 只是你底下代码遵从UTF-8,而你的页面文件还是遵从操作系统的编码规则。中文操作系统并非UTF-8,所以你得把你的页面文件也要改成UTF-8才可以。具体方法:
    dreamweaver 顶上菜单 -> 修改 -> 页面属性 -> 左侧 -> 标题编码 
    编码选择最顶上一个unicode(UTF-8)点击确认,重新保存页面再试。
    如果不是dreamweaver的话,用WINDOWS的记事本改也行。
      

  4.   

    你的 PHP 文件是一个 UTF-8 编码的文件,文件开头处有 3 个字节的 BOM(Byte Order Mark):EF BB BF
    这 3 个字节在 GBK 编码的 cmd 窗口里显示出来就是你看到的乱码。
    你用 UltraEdit 这类编辑器进行 HEX 编辑模式就能看得很清楚了。其实对于 PHP 文件来说,这个 BOM 可以去掉,因为它有害无益。
    ————————————————————————————————
    基于CSDN论坛提供的插件扩展功能,自己做了个签名档工具,分享给大家,欢迎技术交流 :)