mysql字符集
mysql字符集
中文
utf8
latin1
乱码
character set
infobright下如何使用utf8字符集
By yejr on 18 八月 2012
目前infobright应用越来越多了,有些场景下需要和台管理系统共用,因此需要同时存在brighthouse和myisam两种引擎。
这时候,如果需要brighthouse引擎支持utf8字符集,需要:
1. 数据库对象创建时务必使用utf8字符集,这点尤为关键,否则不可支持utf8;
2. 数据表对象创建时也使用utf8字符集;
3. 导入文件提前转换成utf8字符集;
4. 连接infobright时,执行set names utf8;
5. 导入文件,查看字符集是否正确;
另一种场景下,可能myisam表也需要支持utf8,这个相对比较麻烦:
1. 数据库对象创建时无所谓,不强制必须是utf8;
2. 数据表对象创建时务必使用utf8字符集;
3. 将导入文件全部转换成utf8字符集的INSERT语法,直接写入数据,infobright不支持LOAD DATA INFILE方式导入utf8字符集的文件;
4. 也可以将其他非字符型字段导入后,再用update进行更新;
[MySQL FAQ]系列 -- 如何设定连接服务器时的字符集
By yejr on 26 十二月 2007
1、) 登录服务器后,执行 SET NAMES ‘utf8’; 这样的SQL语句来设定连接字符集为 utf8
2、) 用GUI客户端(如Navicat/MySQL Front)连接服务器时,设定字符集
3、) 用 PhpMyAdmin 连接时,在登录页面选择正确的字符集
[MySQL FAQ]系列 -- 如何为一个字段指定字符集
By yejr on 25 十二月 2007尽管数据表创建时已经指定默认字符集了,但是该表里面的字段还是可以指定自己的字符集的。
1、创建数据表时,指定其字符集
CREATE TABLE tbl ( ...... name CHAR(20) CHARACTER SET UTF8, ...... ) ENGINE = MyISAM DEFAULT CHARSET UTF8;
2、或者采用 ALTER 语法来转换字段的字符集
ALTER TABLE tbl CHANGE name name CHAR(20) CHARACTER SET utf8;
3、采用其他客户端工具来设定,例如 Navicat/MySQL Front/PhpMyAdmin
[MySQL FAQ]系列 -- 如何为一个数据表指定字符集
By yejr on 23 十二月 2007指定数据表字符集后,该数据表里的所有字符型字段默认都使用该表指定的字符集。
1、创建数据表时,指定其字符集
CREATE TABLE tbl ( ...... ) ENGINE = MyISAM DEFAULT CHARSET UTF8;
2、或者采用 ALTER 语法来转换字段的字符集
ALTER TABLE tbl CONVERT TO CHARACTER SET utf8;
3、采用其他客户端工具来设定,例如 Navicat/MySQL Front/PhpMyAdmin
[MySQL FAQ]系列 -- 如何为一个数据库指定字符集
By yejr on 23 十二月 2007指定数据库字符集后,该数据库下创建的表默认都采用该库指定的字符集。
1、创建数据库时,指定其字符集
CREATE DATABASE db DEFAULT CHARSET UTF8;
2、或者采用 ALTER 语法来转换字段的字符集
ALTER DATABASE db DEFAULT CHARSET UTF8;
[MySQL FAQ]系列 -- 如何更改MySQL的默认字符集
By yejr on 16 十二月 2007方法1、 用 SET 语法来指定,不加 "GLOBAL" 的话就只对本次会话有效
SET [GLOBAL] character_set_client = utf8; SET [GLOBAL] character_set_connection = utf8; SET [GLOBAL] character_set_database = utf8; SET [GLOBAL] character_set_results = utf8; SET [GLOBAL] character_set_server = utf8;
方法2、 也用SET语法,只对本次会话有效
SET NAMES 'utf8';
方法3、) 直接修改 my.cnf,增加一行内容,然后重启 MySQL,使之全局生效
default-character-set = utf8
推出第一个免费工具CCT
By yejr on 24 七月 2007太多次接到网友关于字符集问题的帮助需求了,最后主要集中在文件字符集的转换上,有些网友对转换过程不太熟悉,因此本站提供该工具:
转换文件内容字符集工具 Charset Convert Tool(CCT) ,主要是配合 小谈MySQL字符集 一起试用,欢迎报告bug。
转换文件内容字符集工具(CCT)
By yejr on 24 七月 2007MySQL 存储过程的字符集问题
By yejr on 18 七月 2006由于存储过程中定义参数时,无法定义其字符集,因此调用存储过程的时候,会默认读取全局变量character_set_server,而且还是只读取mysqld启动时该全局变量的值作为存储过程中默认的传输字符集。因此,如果数据表/字段使用系统默认的字符集(比如latin1)的话,调用存储过程更新一些非英文的字符串字段时,就不会发生问题;但是,如果数据表/字段的字符集不是系统默认的字符集(比如默认是latin1,数据表使用的是utf8),就会出现问题了。解决办法是:在my.cnf(windows下是my.ini),增加一行:
default-character-set=utf8
或者
页面
