数据有乱码,唉,首先想到的是字符集;
show character set ;
lower_case_table_names
MySQL里面有哪些地方会涉及到字符集?
client -> Server -> DB-> Table-> 字段
mysql > s
• 字符集继承关系:
服务端:server => database => table => column
客户端:connection => result
• 动态修改客户端字符集:SET NAMES latin1/gb2312/utf8;
• 无法动态修改服务端字符集
char(N) N表示是字符还是字节? N是字符
utf-8 gbk
1汉字 3字节 2字节
1英文 1字节 1字节
在utf-8下;
varchar(30) 最长的字符是30个汉字符,占30*3+1 = 91 个字节;
char(30) 最长的字符是30个英文字符,占30字节;
GBK 双字节
char(30) gbk 存30个汉字,占60个节节;
varchar(30), 存30个汉字,占61个节节;