MySql修改數(shù)據(jù)庫編碼為UTF8避免造成亂碼問題
網(wǎng)頁數(shù)據(jù)一般采用UTF8編碼,而數(shù)據(jù)庫默認(rèn)為latin 。我們可以通過修改數(shù)據(jù)庫默認(rèn)編碼方式為UTF8來減少數(shù)據(jù)庫創(chuàng)建時(shí)的設(shè)置,也能最大限度的避免因粗心造成的亂碼問題。
我們遵循的標(biāo)準(zhǔn)是,數(shù)據(jù)庫,表,字段和頁面或文本的編碼要統(tǒng)一起來
我們可以通過命令查看數(shù)據(jù)庫當(dāng)前編碼: mysql> SHOW VARIABLES LIKE 'character%';
發(fā)現(xiàn)很多對(duì)應(yīng)的都是 latin1,我們的目標(biāo)就是在下次使用此命令時(shí)latin1能被UTF8取代。
第一階段:
mysql設(shè)置編碼命令
SET character_set_client = utf8;
SET character_set_connection = utf8;
SET character_set_database = utf8;
SET character_set_results = utf8;
SET character_set_server = utf8;
然后 mysql> SHOW VARIABLES LIKE 'character%'; 你可以看到全變?yōu)?utf8 。
但是,這只是一種假象
此種方式只在當(dāng)前狀態(tài)下有效,當(dāng)重啟數(shù)據(jù)庫服務(wù)后失效。
所以如果想要不出現(xiàn)亂碼只有修改my.ini文件,
從my.ini下手(標(biāo)簽下沒有的添加,有的修改)
[client]
default-character-set=utf8
[mysql]
default-character-set=utf8
[mysqld]
default-character-set=utf8
以上3個(gè)section都要加default-character-set=utf8,平時(shí)我們可能只加了mysqld一項(xiàng)。
然后重啟mysql,執(zhí)行
mysql> SHOW VARIABLES LIKE 'character%';
確保所有的Value項(xiàng)都是utf8即可。
但是可惡的事情又來了,
|character_set_client | utf8 |
| character_set_connection | utf8 |
| character_set_database | utf8 |
| character_set_filesystem | binary |
| character_set_results | utf8 |
| character_set_server | latin1 |
| character_set_system | utf8 注意 該配置| character_set_server | latin1 無法設(shè)置成UTF8 交互時(shí)候仍然會(huì)出現(xiàn)亂碼。
第二階段:找到下面這東東
X:\%path%\MySQL\MySQL Server 5.0\bin\MySQLInstanceConfig.exe
重新啟動(dòng)設(shè)置,將默認(rèn)編碼設(shè)置為utf8.這樣就能達(dá)到我們所要的效果了。
mysql> SHOW VARIABLES LIKE 'character%';
+--------------------------+---------------------------------------------------------+
| Variable_name | Value |
+--------------------------+---------------------------------------------------------+
| character_set_client | utf8 |
| character_set_connection | utf8 |
| character_set_database | utf8 |
| character_set_filesystem | binary |
| character_set_results | utf8 |
| character_set_server | utf8 |
| character_set_system | utf8 |
| character_sets_dir | C:\Program Files\MySQL\MySQL Server 5.0\share\charsets\ |
+--------------------------+---------------------------------------------------------+
8 rows in set
另外注意事項(xiàng):
1、建表時(shí)加utf8,表字段的Collation可加可不加,不加時(shí)默認(rèn)是utf8_general_ci了。
CREATE TABLE `tablename4` (
`id` int(11) NOT NULL AUTO_INCREMENT,
`varchar1` varchar(255) DEFAULT NULL,
`varbinary1` varbinary(255) DEFAULT NULL,
PRIMARY KEY (`id`)
) ENGINE=MyISAM DEFAULT CHARSET=utf8
2、網(wǎng)頁xxx.php/jsp保存時(shí)選擇utf8編碼,頁頭最好加上
header('conten-type:text/html;charset=utf-8');
在執(zhí)行CRUD操作前先執(zhí)行一下
mysql_query("set names utf8");
-------------------------
連接數(shù)據(jù)庫設(shè)置編碼
jdbc:mysql://地址:3306/數(shù)據(jù)庫名?characterEncoding=utf8
-------------------------
java中的常用編碼UTF-8;GBK;GB2312;ISO-8859-1;
對(duì)應(yīng)mysql數(shù)據(jù)庫中的編碼utf8;gbk;gb2312;latin1
- php和mysql中uft-8中文編碼亂碼的幾種解決辦法
- MySQL查看與修改當(dāng)前數(shù)據(jù)庫編碼的方法
- 修改MySQL數(shù)據(jù)庫中表和表中字段的編碼方式的方法
- MySQL查看和修改字符編碼的實(shí)現(xiàn)方法
- MYSQL數(shù)據(jù)庫使用UTF-8中文編碼亂碼的解決辦法
- Mysql數(shù)據(jù)庫編碼問題 (修改數(shù)據(jù)庫,表,字段編碼為utf8)
- 修改mysql5.5默認(rèn)編碼(圖文步驟修改為utf-8編碼)
- 查看修改mysql編碼方式讓它支持中文(gbk或者utf8)
- MySQL字符編碼設(shè)置方法
- MySQL編碼不一致可能引起的一些問題
相關(guān)文章
MySQL 生成隨機(jī)數(shù)字、字符串、日期、驗(yàn)證碼及 UUID的方法
這篇文章主要介紹了MySQL 生成隨機(jī)數(shù)字、字符串、日期、驗(yàn)證碼及 UUID的方法,本文給大家介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或工作具有一定的參考借鑒價(jià)值,需要的朋友可以參考下2021-02-02MySQL的源碼安裝及使用UDFs進(jìn)行數(shù)據(jù)自動(dòng)更新的教程
UDFs即是MySQL的用戶自定義函數(shù)的縮寫,配合觸發(fā)器可以自動(dòng)更新Memcached與MySql的數(shù)據(jù),這里我們就來總結(jié)一下MySQL的源碼安裝及使用UDFs進(jìn)行數(shù)據(jù)自動(dòng)更新的教程:2016-07-07通過mysql show processlist 命令檢查mysql鎖的方法
show processlist 命令非常實(shí)用,有時(shí)候mysql經(jīng)常跑到50%以上或更多,就需要用這個(gè)命令看哪個(gè)sql語句占用資源比較多,就知道哪個(gè)網(wǎng)站的程序問題了。2010-03-03MySQL操作數(shù)據(jù)庫實(shí)戰(zhàn)指南
這篇文章主要給大家介紹了關(guān)于MySQL數(shù)據(jù)庫操作庫的相關(guān)資料,MySQL數(shù)據(jù)庫是一個(gè)關(guān)系型數(shù)據(jù)庫管理系統(tǒng),所采用的SQL語言是用于訪問數(shù)據(jù)庫最常用的標(biāo)準(zhǔn)會(huì)語言,需要的朋友可以參考下2023-07-07Mysql?8.0解壓版下載安裝以及配置的實(shí)例教程
MySQL的安裝分為兩種,一種是安裝版本,一種是免安裝解壓版本,一般老師都會(huì)推薦免安裝解壓版本,用起來更方便些,下面這篇文章主要給大家介紹了關(guān)于Mysql?8.0解壓版下載安裝以及配置的相關(guān)資料,需要的朋友可以參考下2022-01-01深入探索數(shù)據(jù)庫MySQL性能優(yōu)化與復(fù)雜查詢相關(guān)操作
數(shù)據(jù)庫MySQL 是一種開源的關(guān)系型數(shù)據(jù)庫管理系統(tǒng),在進(jìn)行 MySQL 數(shù)據(jù)庫開發(fā)過程中,需要深入了解如何進(jìn)行性能優(yōu)化和復(fù)雜查詢,以提高系統(tǒng)的效率和可靠性,本文介紹的非常詳細(xì),需要的朋友可以參考一下2023-04-04詳解MySQL存儲(chǔ)過程的創(chuàng)建和調(diào)用
這篇文章主要為大家介紹了MySQL存儲(chǔ)過程的創(chuàng)建和調(diào)用,具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下,希望能夠給你帶來幫助2021-12-12Mysql中關(guān)于on,in,as,where的區(qū)別
這篇文章主要介紹了Mysql中關(guān)于on,in,as,where的區(qū)別說明,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。如有錯(cuò)誤或未考慮完全的地方,望不吝賜教2023-03-03解決MySQL Sending data導(dǎo)致查詢很慢問題的方法與思路
這篇文章主要介紹了解決MySQL Sending data導(dǎo)致查詢很慢問題的方法與思路,感興趣的小伙伴們可以參考一下2016-04-04