服务器 频道

mysql4.1和以上版本格式连接的说明

  【IT168 服务器学院】my.ini没有指定默认格式前(default-character-set=),所有建立的表都为latin1_general_ci, 转换后虽然不会有什么问题,但latin1_general_ci保存utf8数据可能会留下隐患.

  有些朋友用mysql4.0 保存的utf8 时无论程序还是数据库监视文字都没有乱码, 一旦升级mysql4.1或以上版本以后, 程序中看见的就是乱码了.

  到mysql 4.1 以后, 程序与数据库格式连接被细分为4层.而很多程序没有考虑到这一点

  所以程序在mysql4.1或以上版本的环境就以默认的

  character set client latin1
  character set connection latin1
  character set results latin1

  来建立数据连接,所以读出来的就是乱码了

  这个问题可以通过my.ini指派一个默认的读写连接来解决
  在[mysqld]中增加

  default-character-set=utf8
  #(指定服务器默认格式为utf8,可以自定其它格式)
  #这项指定后 character_set_server , collation_server 会变为你所指定的格式, 所有新建表默认都将以这个格式建立并整理)

  character-set-client=utf8
  #(指定所有程序连接mysql4.1或以上版本的格式为utf8,可以自定其它格式)
  #这项指定后, character set client , character set connection , character set results 会变为你所指定的格式

  这样不支持mysql4.1和以上版本判断连接方式的程序就不会出现乱码了

  然后到 character_set_database , collation_database 的格式指定,

  这两个需要使用脚本或phpmyadmin等工具将表指定为utf8_general_ci或你使用中的其它格式

  这个指定在支持判断mysql4.1和以上版本的程序中(例如phpmyadmin2.6.x以上)起到指定格式的关键作用.
  包括mysqldump -T page参数也是使用这个指定.

  最后是character_set_system,这个是编译mysql时指定, 编译时可以更改为你使用的格式,也可以通过my.ini指定.

0
相关文章