今天发现一个bug,数据库查不来的数据只有一列出现乱码,表的编码都是对的,项目查出来的数据就是乱码,肯定是数据库的问题。
SHOW CREATE TABLE company 查看表格编码发现
work_time
varchar(50) CHARACTER SET armscii8 COLLATE armscii8_bin DEFAULT NULL
建数据库的时候,已经选择了编码格式为UTF-8
但是用PDM生成的脚本导进去的时候却奇怪的发现表和表的字段的编码格式却是GBK,一个一个却又觉得麻烦,在网上找了一下办法
一个是修改表的编码格式的
ALTER TABLE table
DEFAULT CHARACTER SET utf8;
但是虽然修改了表的编码格式,但是字段的编码格式并没有修改过来,没有什么卵用
又发现一条语句,作用是修改字段的编码格式
ALTER TABLE tablename
CHANGE 字段名1
字段名2
VARCHAR(36) CHARACTER SET utf8 NOT NULL;
但是一次只能修改一个字段,还是很麻烦,不方便。
最后找到这么一条语句
alter table tablename
convert to character set utf8;
它可以修改一张表的所有字段的编码格式,顿时方便多了