MySQL数据库编码字符集

2015-01-21 12:11:07 · 作者: · 浏览: 3

介绍?


不同的编码格式会导致同一字符,在不同字符集下的编码会不同。同样同一编码在不同的字符集中代码的字符也不相同。当你的MySQL返回的字符串的编码格式(字符集)与你的客户工具程序使用的字符集不同时,就会造成乱码。


MySQL中默认字符集的设置有四级:服务器级,数据库级,表级?。最终是字段级?的字符集设置。注意前三种均为默认设置,并不代码你的字段最终会使用这个字符集设置。


MySQL中默认字符集的设置有四级:服务器级别?>?数据库级别?>?表级别?>?列级别。如果后者没有显示指定字符集,那么将采用前者的字符集。


?MySQL对于字符集的指定可以细化到一个数据库,一张表,一列.传统的程序在创建数据库和数据表时并没有使用那么复杂的配置,它们用的是默认的配置.


? ? ? ?(1)、编译MySQL?时,指定了一个默认的字符集,这个字符集是?latin1


? ? ? ?(2)、安装MySQL?时,可以在配置文件?(my.ini)?中指定一个默认的的字符集,如果没指定,这个值继承自编译时指定的;


? ? ? ?(3)、启动mysqld?时,可以在命令行参数中指定一个默认的的字符集,如果没指定,这个值继承自配置文件中的配置,此时?character_set_server?被设定为这个默认的字符集;


其中


其中


? ? 方法:show create database DatabaseName


? ? ?方法:show create table TableName


使其快速设置成相应的字符集,但重启之后会变成之前系统默认字符集。


设置了表的默认字符集为utf8并且通过UTF-8编码发送查询,存入数据库的仍然是乱码。那connection连接层上可能出了问题。解决方法是在发送查询前执行一下下面这句:?SET NAMES 'utf8';它相当于下面的三句指令:


--------------------------------------分割线 --------------------------------------


--------------------------------------分割线 --------------------------------------