数据库编码问题


在学习JDBC的时候,想在数据表中插入一条带有中文的数据,结果报错 java.sql.SQLException: Incorrect string value: '\xE5\xBC\xA0\xE7\x99\xBE...' for column 'username' at row 1

将URL中的 characterEncoding=UTF-8 删除后不报错,但是数据库中中文部分显示为???

原因如下:

数据库创建的时候,默认的编码不是UTF-8,还有数据表的编码,数据表中的字段编码都需要更改成UTF-8才能正常插入数据。

更改编码

数据库

查看数据库编码格式

show variables like 'character_set_database';

修改数据库的编码格式

alter database <数据库名> character set utf8;

数据表

查看数据表的编码格式

show create 'table_name'

更改数据表的编码:

ALTER TABLE 'table_name' 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;

创建时指定编码

创建数据库时指定数据库的编码

create database <数据库名> character set utf8;

创建数据表时指定数据表的编码格式

create table db4 (xxx, xxx) default charset = utf8;

参考连接:

https://blog.csdn.net/luo4105/article/details/50804148

https://blog.csdn.net/hai_chao/article/details/79209408

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值