日期:2014-05-16  浏览次数:20818 次

mysql数据乱码问题
ENGINE=MyISAM  DEFAULT CHARSET=latin1 AUTO_INCREMENT=8 ;
mysql有多重引擎,这些引擎都隐藏在mysql服务器内,全都能执行create ,select等命令。多数默认是MyISAM

三种不同的引擎简介:

  • InnoDB--可靠的事务处理引擎,不支持全文本搜索。
  • MEMORY--功能等同于MyISAM,数据存储在内存中,速度快,因此多适用于临时表。
  • MyISAM--性能极高,支持全文本搜索,但不支持事务处理。



latin1百度百科
latin1

  Latin1是ISO-8859-1的别名,有些环境下写作Latin-1。
  ISO-8859-1
  ISO-8859-1编码是单字节编码,向下兼容ASCII,其编码范围是0x00-0xFF,0x00-0x7F之间完全和ASCII一致,0x80-0x9F之间是控制字符,0xA0-0xFF之间是文字符号。
  ISO-8859-1收录的字符除ASCII收录的字符外,还包括西欧语言、希腊语、泰语、阿拉伯语、希伯来语对应的文字符号。欧元符号出现的比较晚,没有被收录在ISO-8859-1当中。
  因为ISO-8859-1编码范围使用了单字节内的所有空间,在支持ISO-8859-1的系统中传输和存储其他任何编码的字节流都不会被抛弃。换言之,把其他任何编码的字节流当作ISO-8859-1编码看待都没有问题。这是个很重要的特性,MySQL数据库默认编码是Latin1就是利用了这个特性。ASCII编码是一个7位的容器,ISO-8859-1编码是一个8位的容器。



解决方案:
修改sql文件,修改创建表的部分,将CHARSET=latin1 改为 utf8
其他办法未尝试。有时间可以多去了解。-----如何将latin1改为utf8??
http://dev.mysql.com/doc/refman/5.1/zh/charset.html