首页
新闻
论坛
下载
博客
WIKI文档
主题
联系我们
全站搜索
登录
English
简体中文
繁体中文
UTF-8
文章管理
通过email发送
Email 地址
*
标题
*
内容
*
mysql 從 latin1 轉 utf-8 的經驗 作者DavidChiou 【以下案例只适用於全 utf-8 环境。若不同环境,必须作些修改。】 许多人可能会有这样的经验:明明全部系统都以 UTF-8 设置,但是用 phpMyAdmin 去看数据库时,发现中文字仍然是乱码。 若有发生这种情况,是因为虽然 mysql 本身及网页都是 utf-8, 但是 xoops 却用 latin1 将数据传给 mysql,因此最后是 utf-8 数据被以 latin1 的格式储存进数据库。其实在 xoops 来看没有任何问题,只是用 phpMyAdmin 看时,就都是乱码,较不好管理。 以下是环境: mysql: 5.1.22 mysql 文字编码: utf-8 unicode mysql 连线校对: utf-8_unicode_ci 所有数据库都以 utf-8 建立。 phpMyAdmin: 2.11.3 (Language 选 「中文 - Chinese Traditional」) xoops 2.0.17.1 对於这种状况,解决的几个面向: 1. mysql 设定: /etc/my.cnf (或 Windows 下的 my.ini) 要有以下设定: [client] default-character-set=utf8 [mysqld] default-character-set=utf8 init_connect='SET NAMES utf8' 2. 在 xoops 端,先前已有各位前辈在本论坛告知大家要在 xoops/class/database/mysqldatabase.php 加入以下这行: @mysql_query("SET NAMES 'utf8'", $this->conn); (加此行在 $result = mysql_query($sql, $this->conn); 之前) 就可以强制用 utf8 传输。 3. mySQL 数据库: 可是若有旧的 database 怎麽办? 照上面的方法改了之後,迈入 xoops 後以前所有的中文字都变乱码了,新输入或重新输入的中文字才会变正常显示。 没关系,照以下的步骤,就能将以前的数据库转码了: 先采以下方法将数据库 dump 出: mysqldump --all-databases --default-character-set=latin1 -u root -p > dump.sql 修改 dump.sql 文件首页的: /*!40101 SET NAMES latin1 */; 成为 /*!40101 SET NAMES utf8 */; 然后再将数据库 import 回即可: mysql -u root -p < dump.sql 重新打开 xoops 看,中文一切 OK。进入 phpMyAdmin 看,也都没有乱码了。 Have a nice day! 来源:http://xoops.org.cn/modules/newbb/vie ... opic_id=14658&forum=1 更多... http://xoops.org.cn/modules/article/view.article.php/c8/40
Copyright ©
XOOPS
CHINA
|
SITE MAP
|
京ICP备05003401
|
开发咨询服务