加入收藏 | 设为首页 | 会员中心 | 我要投稿 聊城站长网 (https://www.0635zz.com/)- 智能语音交互、行业智能、AI应用、云计算、5G!
当前位置: 首页 > 站长学院 > MySql教程 > 正文

MySQL的数据库乱码原因剖析

发布时间:2023-09-04 14:25:43 所属栏目:MySql教程 来源:
导读:MySQL数据库乱码的原因

在计算机中任何数据都是以二进制存储的,要存储一个字符就要对它进行编码,用一个二进制与其对应,这种对应的规则就是字符的编码。编码的规则有很多种,一种规则所编码的“字符&rdqu
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
 
 

(编辑:聊城站长网)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章