数据库里的字段,中文存储乱码的问题

8 views
Skip to first unread message

非狐外传

unread,
Jun 8, 2006, 12:57:54 PM6/8/06
to CooCooWakka
使用了mysql 5,php5
,假设了CooCoo,安装时选择了UTF-8编码,简体中文UTF-8字符。

使用的时候,页面显示,深入中文都是正常的。通过数据库客户端Navicat查看数据库的时候,发现wakka_pages表中字段里应该是中文的地方,全部是乱码。

就写了个最简单的PHP程序,连接Mysql,把这几个字段读出来,发现也确实是乱码。

可能是写入到数据库的时候,发生了什么问题。

这样的问题,在全是coocoo系统自己来处理的时候,被掩盖掉了。和如果和其它的系统联动的时候,就会有问题了。

WSXephon

unread,
Jun 8, 2006, 11:44:20 PM6/8/06
to CooCooWakka
由于mysql设计上的理念?程序不指定编码格式的话,默认是latin1的编码,好像配置mysql时选utf8的默认编码也没用。网上这方面资料很多的。

Mic

unread,
Jun 9, 2006, 8:12:05 AM6/9/06
to CooCooWakka
把navicat的客户端编码选择为utf-8,否则默认为操作系统编码(windows为gb2312),当然会看到乱码了

非狐外传

unread,
Jun 10, 2006, 4:25:21 AM6/10/06
to CooCooWakka
nativcat已经设置成了utf-8,整个系统都是utf-8的。
后来看了一下源代码,发现在
libs/clswakka.php的第25行,连接数据库后,需要执行
@mysql_query("SET NAMES 'utf8'", $this->dblink);
这样在数据库里面就能看见正确的utf-8编码内容了,其实,这句应该是需要判断mysql的版本,和系统的编码后
再决定,可以看到很多opensource的PHP系统,都有这句。我这里就直接添加了。

再补充,如果没有这句,这个wiki系统用起来还是正常的。
一个很好的系统。

Reply all
Reply to author
Forward
0 new messages