Sunday, May 06, 2007

MYSQL数据库中有关CHARACTER SET方面内容

mysql4.1的charset与collation。 第一, 如果你的网站是中文GB的, 可以照用latin1,也就是默认的collation。 如果是utf的, create database时要加上 collation为utf_general_ci的开关,这个有人提过了。 第二是, mysql_connect,如果是gb,用latin1,不用改动,如是utf的要把connection设成utf,以下是我在phpbb里加的:
$result = mysql_query('SET character_set_client = utf8', $this->db_connect_id) or die('Query failed: ' . mysql_error());
$result = mysql_query('SET character_set_results = utf8', $this->db_connect_id) or die('Query failed: ' . mysql_error());
$result = mysql_query('SET character_set_connection = utf8', $this->db_connect_id) or die('Query failed: ' . mysql_error());
第三是在做mysqldump与restore是也要加default_character_set=utf...的开关才能保证utf数据的完整。GB latin1不需要。
第四是在web server里加上header, content_type来显示utf, 如果还有??字, 就把一些include的中文语言包用notepad打开再save as成utf8的,这也是针对utf的文字, GB latin1倒是不需要。

在phpmyadmin里, 中文utf没问题, 但gb/latin1会自动把页面改称utf8于是出现乱码。 但phpmyadmin 2.61里可以设collation与charset,而且是从页面,connection到database三项都有, 改用gb就可以了。

0 Comments:

Post a Comment

Subscribe to Post Comments [Atom]

<< Home