我们的网站是在GBK下面做开发的,在做插件开发的时候,写install.php文件,里面有数据库插入,例如:- $sql = <<<EOF
- CREATE TABLE IF NOT EXISTS pre_mc_org (
- orgid mediumint(8) unsigned NOT NULL auto_increment COMMENT '组名id',
- orgname varchar(60) NOT NULL default '' COMMENT '组名名称',
- url varchar(255) NOT NULL default '' COMMENT '组名链接',
- description text NOT NULL COMMENT '组织介绍 ',
- membernumber mediumint(10) unsigned NOT NULL default '0' COMMENT '会员人数 ',
- `logo` varchar(255) NOT NULL default '' COMMENT '大图标URL',
- `icon` varchar(255) NOT NULL default '' COMMENT '小图标URL',
- `dateline` int(10) unsigned NOT NULL default '0' COMMENT '创建时间',
- PRIMARY KEY (`orgid`)
- ) TYPE=MyISAM DEFAULT CHARSET=gbk COMMENT='组织表';
- runquery($sql);
- $finish = true;
复制代码 带有COMMENT注解的,但是在安装之后,发现插入注解里面的中文乱码了。
但是在网站的其他操作包括中文的读写,都是没任何问题的,就是在插件install.php文件执行的时候发生的。
例如:
更有甚者在phpmyadmin里面是直接报编码错误的:
其实从现象来看,很明显是COMMENT注解没办法写入,就算写入也是乱码的。用其他工具查看也是一样。
但是我看官方的插件,例如qqconnect和security等也有在install.php文件用到COMMENT来注解,但是我查看对应的数据库,并没有发现任何的注解出现,不知道怎么回事,是不是官方插件在安装的时候已经把COMMENT的注解全部过滤掉了还是说也是在插入的时候出现编码错误导致没办法插入。
如果该段sql,直接通过第三方工具或者在phpmyadmin里面运行,完全是没问题的。
不知道其他人有没有遇到这样的问题,因为这些官方插件也不在插件列表里面,也不知道怎么做卸载重装的测试,不知道官方插件安装的时候是不是跟普通插件一样的,是不是两者之间处理的方式有不一样的地方还是怎样?
求解,谢谢。
|