请稍等 ...
×

采纳答案成功!

向帮助你的同学说点啥吧!感谢那些助人为乐的人

关于数据库编码问题导致的插入中文字符失败

正在回答

插入代码

2回答

慕瓜8449030 2018-05-23 09:24:35

或者用server/tools里面我给大家准备的sql

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
-- show create table books 
 
DROP TABLE IF EXISTS `books`;
 
CREATE TABLE `books` (
`id` int(11) NOT NULL AUTO_INCREMENT,
`isbn` varchar(20) NOT NULL,
`openid` varchar(100) NOT NULL,
`title` varchar(100) NOT NULL,
`image` varchar(100) NOT NULL,
`alt` varchar(100) NOT NULL,
`publisher` varchar(100) NOT NULL,
`summary` varchar(1000) NOT NULL,
`price` varchar(100) DEFAULT NULL,
`rate` float DEFAULT NULL,
`tags` varchar(100) DEFAULT NULL,
`author` varchar(100) DEFAULT NULL,
`countint(11) NOT NULL DEFAULT '0',
PRIMARY KEY (`id`)
) ENGINE=InnoDB AUTO_INCREMENT=20 DEFAULT CHARSET=utf8;
 
DROP TABLE IF EXISTS `comments`;
 
CREATE TABLE `comments` (
`id` int(11) NOT NULL AUTO_INCREMENT,
`openid` varchar(100) NOT NULL,
`bookid` varchar(100) NOT NULL,
`comment` varchar(200) NOT NULL,
`phone` varchar(20) DEFAULT NULL,
`location` varchar(20) DEFAULT NULL,
PRIMARY KEY (`id`)
) ENGINE=InnoDB AUTO_INCREMENT=6 DEFAULT CHARSET=utf8;


0 回复 有任何疑惑可以回复我~
  • 提问者 fengyunzhu #1
    非常感谢!
    回复 有任何疑惑可以回复我~ 2018-05-23 15:49:07
提问者 fengyunzhu 2018-05-22 23:32:40

设置数据库编码为中文

可能需要用到的命令

查看数据库编码方式的两个命令

1.status

2.show variables like 'character%'; 

+--------------------------+----------------------------+ 

| Variable_name | Value | 

+--------------------------+----------------------------+ 

| character_set_client | latin1 | 

| character_set_connection | latin1 | 

| character_set_database | latin1 | 

| character_set_filesystem | binary | 

| character_set_results | latin1 | 

| character_set_server | latin1 | 

| character_set_system | utf8 | 

| character_sets_dir | /usr/share/mysql/charsets/ | 

设置编码的命令

  1. set names utf8 (设置客户端的编码格式,会给其中的三项设置为utf-8)

2.分别给每项设置编码

set character_set_connection = 'utf8';

set character_set_results = 'utf8';

set character_set_client = 'utf8';

单独给服务端设置编码

set character_set_server = 'utf8';

给表设置编码

alter table books default character set 'utf8';

给数据库设置编码

alter database cAuth default character set 'utf8';

网上搜有说设置为gbk的,但是我觉得最好还是用utf8

如果以上方法都试过还不行,那就删除表重新建,再建表的时候加一句设置编码

create table books(

id int not null auto_increment primary key,

isbn varchar(20) not null,

openid varchar(50) not null,

title varchar(100) not null,

image varchar(150) ,

alt varchar(100) not null,

publisher varchar(50) not null,

summary varchar(1000) not null,

price varchar(100) ,

rate float,

tags varchar(100),

author VARCHAR(100)

)default character

set utf8;

我的重建表之后就可以了

另外

安装目录下找到 my.ini

default-character-set=utf8 

我的文件里没搜到这个


0 回复 有任何疑惑可以回复我~
  • 谢谢你啊  我也是编码的问题导致无法插入数据。
    搜百度自己试了一下午没弄好,来这里看到你的总结,我得问题也解决了。十分感谢~~@
    回复 有任何疑惑可以回复我~ 2018-05-31 19:51:53
  • 提问者 fengyunzhu 回复 大文1991 #2
    不用客气
    回复 有任何疑惑可以回复我~ 2018-05-31 20:05:49
问题已解决,确定采纳
还有疑问,暂不采纳
意见反馈 帮助中心 APP下载
官方微信