继续不耻下问----一个“?”问题
发布于:2022-01-17 09:50:54
#1 azwl
开始学习speedPHP。改写以前写过的一个小程序。碰到一个问题:
1. 用模板输出时会在HTML内容前加上一个‘?’,模板里肯定没有‘?’这个
1. 函数输出也会加上一个‘?’
譬如:
function getnowtime(){
date_default_timezone_set('Asia/Shanghai');
echo(date('H:i:s', time()));
}
会输出:?14:51:48
我哪里错了?
2010-04-01 15:01:12
#2 jake
开始学习speedPHP。改写以前写过的一个小程序。碰到一个问题:
1. 用模板输出时会在HTML内容前加上一个‘? ...
azwl 发表于 2010-4-1 15:01 
这应该是一个无法识别的字符,而不是问号。
首先要看看,你的index.php文件、getnowtime所在的文件、还有模板文件(如果有模板的话),是不是被UTF8,然后这个UTF8需要去掉BOM的。(一般像Editplus、emEditor之类的编辑器在文件另存为的时候,选UTF8时,会让你选择要不要加上BOM的,这里肯定是不能加BOM)。在去除了文件BOM后,再试试。
另外如果还是有这个字符出现的话,应该是前面某个文件被多输出的一些字符,这样的最好解决方法是找出那个字符,比如说index.php里面,注意那个字符有可能是空格。(或者用记事本另存为一次)。临时的解决方法就是在echo之前加上ob_learn();,不过这方法是治标不治本。
2010-04-01 15:08:56
#3 azwl
谢谢!
是编码问题。但是什么原因造成的现状还是不清粗。我的php代码文件全部utf8,php输出也是utf8.(header("Content-Type", "text/html; charset=utf-8");)
现在这样的问题。echo “文中”乱码,但紧跟着的echo $row['name'] (数据中也是utf8)是OK的。
如下图。

请教。在中文编码方面需要注意哪些?
2010-04-02 10:27:50
#4 jake
就算文件、输出都是UTF8,还要注意两种常见的问题:
1. BOM的问题,这是很多编辑器自动加上的,防不胜防。而且它出问题的情况,也很怪,有时乱码,有时就会,所以很麻烦的。
解决的方式是通过一些编辑器另存为,然后去除BOM。
2. 有的时候,会发生一种情况就是:“从GB2312的文件中,把一些代码复制到UTF8的文件中”,这种情况也是很隐蔽的,看起来好像没问题,却会出现乱码。问题是发生在那些代码本身不是UT8的问题上。
解决的方式是通过windows记事本另存为UTF8一次,这样才能把那文件修复回真正的UTF8。
2010-04-02 11:07:38