发新话题
打印

d4php的中文彻底解决方案

d4php的中文彻底解决方案

一,问题的发现
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 编辑 ]

TOP

不错,我顶你
不过这里有些太冷了
Borland forever!

TOP

你这个方法很幼稚,不要发表这样的“彻底”字样了,很肤浅

TOP

good!

TOP

to: foxw2005请教什么是不幼稚的方法。谢谢

如果您能提出更好的方法,我等甘愿带上幼稚的大帽子,谢谢。

TOP

错误

我照你的方法,运行出现
Fatal error: Call to undefined method Unit7::Unit7Create() in c:\program files\CodeGear\delphi for php\1.0\vcl\classes.inc.php on line 947
该如何解决,谢谢!

TOP

解决了,不是你说的问题,我重新建了个文档测试就可以了,不知道刚才那个是什么问题

TOP

引用:
原帖由 foxw2005 于 2008-3-27 15:22 发表
你这个方法很幼稚,不要发表这样的“彻底”字样了,很肤浅
这位请你 提出高见 ,尊重别人的有效成果,说别人幼稚的才是真幼稚。
我必安然躺下睡觉,因为独有你耶和华使我安然居住。
I will both lay me down in peace, and sleep: for thou, LORD, only makest me dwell in safety.

TOP

学习为主,可以提意见,谁会得多谁提出好的建议让大家学习

TOP

如何解决连接mssql时dbgrid无法显示的问题

我用delphi for php 2.0时,按照楼主的方法,显示中文很正常.但是在连接MSSQL数据库时,dbgrid在浏览时没有任何显示,不知如何解决?

TOP

发新话题