mysql 数据库乱码_MySQL数据库乱码排错

MySQL数据库乱码的原因

在计算机中任何数据都是以二进制存储的,要存储一个字符就要对它进行编码,用一个二进制与其对应,这种对应的规则就是字符的编码。编码的规则有很多种,一种规则所编码的“字符”的集合就叫做“字符集”。在制定编码标准的时候,“字符的集合”和“编码”一般都是同时制定的,因此,平时我们所说的“字符集”,例如GB2312,GBK和UTF-8等,除了有“字符的集合”这层含义外,同时也包含了“编码”的含义。

对中文处理可以使用GB2312和GBK,它是中文字符集,而UTF-8是对世界上每个国家和地区的文字之地制定的字符集,并且UTF-8是可变存储长度的字符集,如英文字母只需要一个字节存储,节省了存储空间,所以数据库中通常采用UTF-8的字符集。

服务器系统字符设置问题

数据表语系设置的问题

客户端连接语系的问题

解决方法

在创建数据库时通过CHARACTER SET 字符集与COLLATE 'utf8_general_ci' 设定

在创建表时通过DEFAULT CHARSET = 字符集 设定

可使用SET NAMES 字符集设置默认的字符集

修改配置文件,在[mysql]段中加入default_character_set=字符集

⑴在创建数据库时设定字符集

CREATE DATABASE chartest CHARACTER SET 'utf8' COLLATE 'utf8_general_ci';

⑵在创建表时设定字符集

CREATE TABLE 'charatertest' (id varhsar(40)) DEFAULT CHARSET =utf8

⑶使用SET NAMES 是指默认的字符集

SET NAMES utf8

⑷修改配置文件,在[mysql]段中加入

default_character_set=utf8

举例:

⑴创建数据库、表、全局数据库设置

[root@localhost ~]# mysql -u root -p123

mysql> create database mydb default character set utf8 collate utf8_general_ci;

mysql> use mydb

mysql> create table mydb_table (username varchar(64) NOT NULL  ) default charset=utf8;

mysql> set names utf8;#给整个数据库设置默认字符集

⑵修改配置文件

[root@localhost ~]# vim /etc/my.cnf

[mysql]后面加入

default_character_set=utf8

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值