一,问题的发现
1 在
下载了utf版本并做了正确设置后,新建的
页面是可以支持
中文的
2 但是在刚开始学习d4php的时候生成的一些页面,始终无法显示中文。
二,解决过程
所以我一生气,做了这样的动作:
1 用记事本把以前生成的
php文件打开,一查看,编码的确不是utf-8,于是选择utf-8,保存。这样,该php文件就是utf-8编码的了。
2 然后在d4php下,重新运行该php页面,终于能显示中文了。
3 最后再看看asp、aspx生成的网页,大部分都不是utf-8编码的,说明d4php对中文的支持是建立在国际化基础上的,生成utf-8编码的文件,对于编程人员也是一个好习惯。也就是说页面编码问题,对于asp、asp.net程序员来说是个隐形问题,对于d4php程序员来说,是个显性问题。
对d4php的中文显示做一个总结:
1 代码编辑器方面
生成的php页面的编码最好是utf-8编码的
设置方法是d4php-->Tools-->Options-->Editor Options,选择Use Utf-8 to create new units and forms
相当于本帖刚开始所做的改动,这是对编辑器来说的。
2 php服务器方面
php服务器要支持utf-8编码
设置方法是d4php-->Tools-->Options-->pph,Default Charset选择Utf-8
d4php-->Tools-->Options-->php,Set these values on php.ini 打钩
相当于同时修改以下两个文件,修改内容是:default_charset="utf-8"
E:\Program Files\CodeGear\Delphi
for PHP\1.0\php\php.ini
E:\Program Files\CodeGear\Delphi for PHP\1.0\php\php.ini.template
3 web服务器方面
阿帕奇web服务器也要支持utf-8
设置方法是:
修改d4php目录下的apache2的配置文件,让其应用utf-8字符集AddDefaultCharset UTF-8
(注意同时修改以下文件,以免被
delphi for php启动时复原,在有关地方添加
一行:AddDefaultCharset UTF-8)
E:\Program Files\CodeGear\Delphi for PHP\1.0\apache2\conf\http.conf
E:\Program Files\CodeGear\Delphi for PHP\1.0\apache2\conf\httpd.default.conf
E:\Program Files\CodeGear\Delphi for PHP\1.0\apache2\conf\httpd.template.conf
4 控件编码方面
php页面内的控件的编码也要是utf-8编码的
设置方法是:d4php--->新增一个
form页面--->将form的encoding属性设为utf-8
5 数据库编码方面
mysql数据库也是utf-8编码的
例如:
function dbnews1AfterConnect($sender, $params)
{
$this->dbnews1->execute('set names utf8');
}
最后说明两点:
1 可以把上述内容中的utf-8换成gb2312,也能显示中文,不过这不是推荐的方法。
2 以上关于php和apache服务器的改动是针对d4php自带的调试环境,对于服务器来说,需要对服务器里面的php.ini和httpd.conf做修改,修改方法可能不在d4php环境里,上面也有说明,这里强调一下。
以上是本人最近几天的研究成果,当然也参考了前人的东西了。有什么不对的地方,请大家批评指正。如能对初学者有所裨益,那就更好了。
[
本帖最后由 vipfellow 于 2008-3-19 15:18 编辑 ]