【求助】在cmd下运行php代码首字符乱码问题

jiaoxiaogu 2011-12-02 11:13:10
我已将php的exe路径添加到了环境变量的path中,且可以正常运行php -v, php -?等命令

php代码 (test.php):

<meta http-equiv="charset" content="UTF-8">

<?php

if (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代码都输出了呢?
谢谢!!
...全文
206 5 打赏 收藏 转发到动态 举报
写回复
用AI写文章
5 条回复
切换为时间正序
请发表友善的回复…
发表回复
maquan 2011-12-03
  • 打赏
  • 举报
回复
你的 PHP 文件是一个 UTF-8 编码的文件,文件开头处有 3 个字节的 BOM(Byte Order Mark):EF BB BF
这 3 个字节在 GBK 编码的 cmd 窗口里显示出来就是你看到的乱码。
你用 UltraEdit 这类编辑器进行 HEX 编辑模式就能看得很清楚了。其实对于 PHP 文件来说,这个 BOM 可以去掉,因为它有害无益。


————————————————————————————————
基于CSDN论坛提供的插件扩展功能,自己做了个签名档工具,分享给大家,欢迎技术交流 :)
baoxiaohua 2011-12-03
  • 打赏
  • 举报
回复
你的代码应该是没有问题,很有可能是文件本身编码问题!
  • 打赏
  • 举报
回复
这个问题以前在国外论坛上看到过,某人操作系统语言是乌克兰文,编程软件是英文,后来另某人如下解答。至少这个方法对我有用。

<meta http-equiv="charset" content="UTF-8"> 只是你底下代码遵从UTF-8,而你的页面文件还是遵从操作系统的编码规则。中文操作系统并非UTF-8,所以你得把你的页面文件也要改成UTF-8才可以。具体方法:
dreamweaver 顶上菜单 -> 修改 -> 页面属性 -> 左侧 -> 标题编码
编码选择最顶上一个unicode(UTF-8)点击确认,重新保存页面再试。
如果不是dreamweaver的话,用WINDOWS的记事本改也行。

jiaoxiaogu 2011-12-02
  • 打赏
  • 举报
回复
我刚才试了一下-r命令,发现:
>php -r test1.php
PHP Parse error: syntax error, unexpected $end in Command line code on line 1

Parse error: syntax error, unexpected $end in Command line code on line 1、

说首行有异常的$end。。。神马是异常的$end呢?
源码是肯定没有添加的。。。是vim自己生成的么?
jiaoxiaogu 2011-12-02
  • 打赏
  • 举报
回复
在浏览器中是正常的,输出只有一个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中一键运行,也懒得在浏览器之间切来切去。。。

21,886

社区成员

发帖
与我相关
我的任务
社区描述
从PHP安装配置,PHP入门,PHP基础到PHP应用
社区管理员
  • 基础编程社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧