关于数据库编码问题导致的插入中文字符失败
来源:7-5 图书录入功能 - 添加图书功能完成
fengyunzhu
2018-05-22
报错Incorrect string value:
2回答
-
或者用server/tools里面我给大家准备的sql
-- 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, `count` int(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;
012018-05-23 -
fengyunzhu
提问者
2018-05-22
设置数据库编码为中文
可能需要用到的命令
查看数据库编码方式的两个命令
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/ |
设置编码的命令
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
我的文件里没搜到这个
022018-05-31
相似问题