Mysql插入中文和查询中文,编码问题,急 20
首先,是视图位置的问题。把所有编码格式为utf8时候,可以插入中文数据,但是不能使用createorreplace.....wherename='张三',来修改视图,张三...
首先,是视图位置的问题。
把所有编码格式为utf8时候,可以插入中文数据,但是不能使用create or replace ..... where name='张三',来修改视图,张三显示为乱码。
用set names gbk或者gb2312,张三不是乱码,但是却不能插入中文数据了,原来插入的中文数据变成了乱码。
是 视图 中 遇到的问题
表中可以用where name='张三'来查询数据,插入数据也没错误。 展开
把所有编码格式为utf8时候,可以插入中文数据,但是不能使用create or replace ..... where name='张三',来修改视图,张三显示为乱码。
用set names gbk或者gb2312,张三不是乱码,但是却不能插入中文数据了,原来插入的中文数据变成了乱码。
是 视图 中 遇到的问题
表中可以用where name='张三'来查询数据,插入数据也没错误。 展开
3个回答
2014-09-18 · 知道合伙人软件行家
关注
展开全部
–查看字符集
mysql> show variables like 'character%';
mysql> show variables like 'collation_%';
修改配置文件:
shell> vi /etc/mysql/my.cnf
[client]
default-character-set=utf8
[mysql]
default-character-set=utf8
[mysqld]
collation-server = utf8_unicode_ci
init-connect=’SET NAMES utf8′
character-set-server = utf8
2.修改数据库: mysql>ALTER DATABASE db_name DEFAULT CHARACTER SET character_name [COLLATE …];
3.把表默认的字符集和所有字符列(CHAR,VARCHAR,TEXT)改为新的字符集:
mysql>ALTER TABLE tbl_name CONVERT TO CHARACTER SET character_name [COLLATE …]
mysql>ALTER TABLE logtest CONVERT TO CHARACTER SET utf8 COLLATE utf8_general_ci;
只是修改表的默认字符集:
mysql>ALTER TABLE tbl_name DEFAULT CHARACTER SET character_name [COLLATE…];
mysql>ALTER TABLE logtest DEFAULT CHARACTER SET utf8 COLLATE utf8_general_ci;
4.修改字段的字符集:
mysql>ALTER TABLE tbl_name CHANGE c_name c_name CHARACTER SET character_name [COLLATE …];
mysql>ALTER TABLE logtest CHANGE title title VARCHAR(100) CHARACTER SET utf8 COLLATE utf8_general_ci;
5.临时更改连接字符集:mysql> SET NAMES utf8;
查看数据库的字符集
mysql> show create database test;
查看表的字符集,包括各个字段的字符集,如果各字段没有标明,表示与表的字符集一致
mysql> show create table books \G
查看字段编码
SHOW FULL COLUMNS FROM tbl_name;
mysql> show variables like 'character%';
mysql> show variables like 'collation_%';
修改配置文件:
shell> vi /etc/mysql/my.cnf
[client]
default-character-set=utf8
[mysql]
default-character-set=utf8
[mysqld]
collation-server = utf8_unicode_ci
init-connect=’SET NAMES utf8′
character-set-server = utf8
2.修改数据库: mysql>ALTER DATABASE db_name DEFAULT CHARACTER SET character_name [COLLATE …];
3.把表默认的字符集和所有字符列(CHAR,VARCHAR,TEXT)改为新的字符集:
mysql>ALTER TABLE tbl_name CONVERT TO CHARACTER SET character_name [COLLATE …]
mysql>ALTER TABLE logtest CONVERT TO CHARACTER SET utf8 COLLATE utf8_general_ci;
只是修改表的默认字符集:
mysql>ALTER TABLE tbl_name DEFAULT CHARACTER SET character_name [COLLATE…];
mysql>ALTER TABLE logtest DEFAULT CHARACTER SET utf8 COLLATE utf8_general_ci;
4.修改字段的字符集:
mysql>ALTER TABLE tbl_name CHANGE c_name c_name CHARACTER SET character_name [COLLATE …];
mysql>ALTER TABLE logtest CHANGE title title VARCHAR(100) CHARACTER SET utf8 COLLATE utf8_general_ci;
5.临时更改连接字符集:mysql> SET NAMES utf8;
查看数据库的字符集
mysql> show create database test;
查看表的字符集,包括各个字段的字符集,如果各字段没有标明,表示与表的字符集一致
mysql> show create table books \G
查看字段编码
SHOW FULL COLUMNS FROM tbl_name;
2014-09-17
展开全部
set NAME 'utf8'
追问
utf8试过了。
视图中,'男'可以正确显示,但是却不能正确从视图中插入数据 。
追答
插入数据前也set一下,
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
2014-09-17
展开全部
难题,重新装MySQL吧
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询