在转换前,请仔细的配置转换程序,如果你以前的环境是mysql4.1的,请正确填写字符集.
如果你以前用的是latin1的,那么在配置转换程序的时候也设置为latin1
如果你以前用的是gbk的,那么在配置转换程序的时候也设置为gbk
并在你下载的转换程序中做一下改变.
- $mysqlcharset = 'gbk'; //如果您的MySQL为4.1以上版本请根据您的数据字符集进行设置
- //gbk、big5、utf8
复制代码
变为
- $mysqlcharset = 'gbk'; //如果您的MySQL为4.1以上版本请根据您的数据字符集进行设置
- //gbk、big5、utf8,latin1
复制代码
- if (mysql_get_server_info() > '4.1' && in_array(strtolower($mysqlcharset), array('gbk', 'big5', 'utf8'))) {
- mysql_query("SET NAMES '$mysqlcharset';") or exit("设置字符集出错($mysqlcharset),请检查配置的字符集以及mysql版本是否正确!<br>error:".mysql_error());
- }
复制代码
改变为- if (mysql_get_server_info() > '4.1' && in_array(strtolower($mysqlcharset), array('gbk', 'big5', 'utf8','latin1'))) {
- mysql_query("SET NAMES '$mysqlcharset';") or exit("设置字符集出错($mysqlcharset),请检查配置的字符集以及mysql版本是否正确!<br>error:".mysql_error());
- }
复制代码
新的转换程序已经对上面的部分做了更新.
最后在Discuz!4.0.0的./include/db_mysql.class.php中把下面的代码注释掉
- if($this->version() > '4.1' && in_array(strtolower($GLOBALS['charset']), array('gbk', 'big5', 'utf-8'))) {
- //ATTENTION: remove the following line if you want to use the default database character set.
- mysql_query("SET NAMES '".str_replace('-', '', $GLOBALS['charset'])."'");
- }
复制代码 |