日韩av黄I国产麻豆传媒I国产91av视频在线观看I日韩一区二区三区在线看I美女国产在线I麻豆视频国产在线观看I成人黄色短片

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 >

mysql 选择字符集 拉丁字符集_mysql的字符集

發布時間:2025/3/19 50 豆豆
生活随笔 收集整理的這篇文章主要介紹了 mysql 选择字符集 拉丁字符集_mysql的字符集 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

mysql 字符集介紹

2017-09-30-09:16:57

個人原創,轉載請注明,否則追究法律責任

原理:mysql -uroot -p

所以當涉及到,插入的字符集里有中文時,一定要現在定義:set names gbk;

字符集:mysql用來存儲字符串的方式。(包含字符集和校隊規則)

默認字符集:拉丁字符集

GBK 定長,雙字節,不是國際標準,支持的系統不少

UTF-8 非定長,1-4字節,廣泛支持,mysql也使用UTF-8

latin1 mysql的默認字符集

字符集的選擇:

1,如處理各種文字,發布到不同語言的國家(處理英文),應選Unicode,對應的mysql就是UTF-8,每個漢字三字節,

如果應用需要處理英文,僅少量漢字,UTF-8 更好

2,如需支持中文,數據量大,性能要求高,可選GBK(每個漢字雙字節,英文也是雙字節)

實際中:2/3使用UTF-8,1/1使用GBK,mysql可以支持多種字符集,

同一臺機器,庫,表的不同字段都可以指定不同的字符集。建庫的字符集應給和建表的字符集應該一樣。應該和mysql客戶端的字符集,甚至操作系統的字符集全統一,這樣就正常。否則可能會出錯。

修改后的字符集變量:

mysql>show variables like 'character_set%';

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

| Variable_name | Value |

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

| character_set_client | gbk |

| character_set_connection | gbk |

| character_set_database | latin1 |

| character_set_filesystem | binary |

| character_set_results | gbk |

| character_set_server | latin1 |

| character_set_system | utf8 |

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

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

8 rows in set (0.00 sec)

查看表的字符集:

mysql>show create table cc;

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

| Table | Create Table |

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

| cc | CREATE TABLE `cc` (

`name` char(20) DEFAULT NULL

) ENGINE=MyISAM DEFAULT CHARSET=latin1 |

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

1 row in set (0.00 sec)

建一個gbk字符集的表:

mysql>create table dd(id int,name char(20)) default charset=gbk;

Query OK, 0 rows affected (0.01 sec)

mysql> set names gbk;

Query OK, 0 rows affected (0.00 sec)

mysql>insert into dd values(1,'abc'),(2,'性能要求高'),(3,'如需支持中文');

Query OK, 3 rows affected, 1 warning (0.00 sec)

Records: 3 Duplicates: 0 Warnings: 0

mysql> select * from dd;

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

| id | name |

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

| 1 | abc |

| 2 | 性能要求?? |

| 3 | 如需支持中文 |

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

3 rows in set (0.00 sec)

注意:庫和表的字符集要統一,要么都是utf8或者都是gbk。一般都用utf8.

另外的方法:在/etc/my.cnf 里添加參數:

位置為[mysqld]的下面

default-character-set=gbk

service mysqld restart 重啟服務。

能夠修改:character_set_server和character_set_database這兩個的字符集

而set names gbk;可以修個上面兩個,再加上:客戶端和連接。

生產環境的字符集設置:

你的程序用什么字符集,則你的數據庫就用什么字符集,你的表就用什么字符集,否則就會有亂碼

生產環境中常用的字符集有gbk 和utf8

比如:用在博客和CMS等產品的數據庫授權

mysql> create databse blog default character set gbk collate gbk_chinese_ci;

mysql> insert into c3 values(1,'的備份與恢'); -------插入時沒問題,

Query OK, 1 row affected, 1 warning (0.00 sec)

mysql> select * from c3; --------------------------查看時會報亂碼

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

| id | name |

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

| 1 | afdasf |

| 1 | 的備份? | ------------------------------出現亂碼

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

2 rows in set (0.00 sec)

設置字符集后在插入數據

mysql>set names gbk; ------------------------------------ 這時固定格式:set names gbk;names是mysql的變量,不能改成其他的

Query OK, 0 rows affected (0.00 sec)

mysql>insert into t1 values(1,'abc'),(2,'生產環境');

Query OK, 2 rows affected (0.00 sec)

Records: 2 Duplicates: 0 Warnings: 0

mysql>select * from t1;

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

| id | name |

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

| 1 | abc |

| 2 | 生產環境 | -------------------------------------- 這里就可以了,可以顯示中文了

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

2 rows in set (0.00 sec)

注意:set names gbk;只能是在gbk的數據庫里生效。在默認創建的拉丁的字符集的數據庫里,這樣設置無效。仍然識別不了中文

mysql> show create database chen;

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

| Database | Create Database |

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

| chen | CREATE DATABASE `chen` /*!40100 DEFAULT CHARACTER SET latin1 */ |

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

1 row in set (0.00 sec)

mysql> set names gbk;

Query OK, 0 rows affected (0.00 sec)

mysql> insert into cc values('abc'),('數據庫就用'),('什么字符集');

Query OK, 3 rows affected, 2 warnings (0.00 sec)

Records: 3 Duplicates: 0 Warnings: 0

mysql> select * from cc;

+---------+

| name |

+---------+

| abc |

| ??????? |

| ??????? |

+---------+

總結:往數據庫里插入數據時,必需是先set names gbk;然后再插入,否則,插入的是亂碼。插入時成功的,但顯示不出來。沒用。

編輯sql語句。在第二行添加:set names gbk;

導入外部文本到數據庫中:

1,該文本的字符集要正確:gb2312

2, 文件里要加入:set names gbk;

總結

以上是生活随笔為你收集整理的mysql 选择字符集 拉丁字符集_mysql的字符集的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。