西西河

主题:【求助】MYSQL数据库中有关CHARACTER SET方面内容 -- 铁手

共:💬4 新:
全看树展主题 · 分页首页 上页
/ 1
下页 末页
家园 【求助】MYSQL数据库中有关CHARACTER SET方面内容

之前一直是用的MYSQL 4.0,CHARACTER SET也就是缺省的LATIN1。中文显示、存储在西西河的页面上没有问题,在PHPMYADMIN中也没有问题。

最近因为MYSQL4.0的一些安全问题,故而升级到了4。1

结果其中的CHARACTER SET方面变化非常大。虽然西西河的页面显示、存储方面依旧没有问题,但是在PHPMYADMIN中就出现了一些显示上的问题。到目前为止,依旧不能够正常显示中文字符。

不知道哪位熟悉这方面内容。

从长远的看,必须得给每个表设定CHARACTER SET,而不能再简单使用缺省的字符集。现在的问题是,转换方面恐怕要费一番功夫。是用GBK还是用UTF8也是个问题。转换以后,现有的页面大概也要相应更改。

对4。1极其不熟悉:(

怎么样在转换的过程中保证字符的正确,眼下是个大难题。至少试了几种方法后,在PHPMYADMIN中还是无法显示正常。如果是在PHPMYADMIN中直接输入中文保存,没有问题。但是原有数据不能正确转换的话,那是个大问题。

家园 看看这个行不行

这个帖子说了一种解决方法,他使用UTF8的,不知道对LATIN1灵不灵。:

外链出处

现在多数host装的还是MySQL 4.0x 版本以下,如果升级到了4.1x 或者移动到使用4.1x 的主机上,估计会遇到一些问题。我在powweb上遇到了两个问题。

一是数据导入。在phpMyAdmin内导入后,发现中文变成了乱码。搜索学习后,了解到需要设置数据库的collation (校勘),如果你的数据库是utf-8的,设置为utf8_general_ci就可以了。

二是,即使正确导入了,在phpMyAdmin里也能正确显示,但WordPress页面上显示的文章内容都是“???”,而模板里面的汉字都能正常显示。这让我头疼了很久。搜索到Windix’s Weblog上有对此的说明:

从MySQL 4.1开始引入的多语言支持确实很棒,而且一些特性已经超过了其他的数据库系统。不过我在测试过程中发现使用适用于MySQL 4.1之前的PHP语句操作MySQL数据库会造成乱码,即使是设置过了表字符集也是如此。我读了一下新的MySQL在线手册中第十章”Character Set Support“后终于找到了解决方法并测试通过。

MySQL 4.1的字符集支持(Character Set Support)有两个方面:字符集(Character set)和排序方式(Collation)。对于字符集的支持细化到四个层次: 服务器(server),数据库(database),数据表(table)和连接(connection)。

当我们按照原来的方式通过PHP存取MySQL数据库时,就算设置了表的默认字符集为utf8并且通过UTF-8编码发送查询,你会发现存入数据库的仍然是乱码。问题就出在这个connection连接层上。解决方法是在发送查询前执行一下下面这句:

SET NAMES ‘utf8′;

改成:

SET NAMES ‘latin1′;

但是我依旧不知道,如何,在何处让WordPress运行这个SQL语句。后来在阿修的部落格上查到办法:

?橹?解?Q呃????铨必??去修改wp-includes/wp-db.php?鹊馁Y料呗??韵定。????的修改方式是呃?拥模?

$this->dbh = @mysql_connect($dbhost,$dbuser,$dbpassword);

//加上下面呃行

$this->query(”SET NAMES ‘utf8′”);

改成:

$this->query(”SET NAMES‘latin1′”);

这样子终于能正常显示中文的WordPress了。虽然后来还是没用Powweb,但是觉得这个经验会对别人有用。记得有人用email和我讨论过这样子的中文显示问题,但是我那时哪里知道问题出在MySQL 4.1x上。

还有,4.1x的数据库不向下兼容,所以升级的时候要三思啊。

家园 多谢多谢。这个可能可以解决一个问题

就是以后传送数据时候字符集的问题。估计设定缺省字符集为GBK或者UTF8的情况下,那个SET就可以不用了。

现在的问题是,把现有数据转换成合适的字符集,似乎不那么容易。直接DUMP再LOAD好像不行。

家园 是不是要用mysqldump?

这个我不是很清楚,下面是乱讲的,铁手兄小心了

找了个帖子,好像不是很有用:

外链出处

mysqldump 有和字符集相关的 option : -default-character-set=charset, --set-charset

mysqldump page:

外链出处

and charater set page:

外链出处

全看树展主题 · 分页首页 上页
/ 1
下页 末页


有趣有益,互惠互利;开阔视野,博采众长。
虚拟的网络,真实的人。天南地北客,相逢皆朋友

Copyright © cchere 西西河