国产探花免费观看_亚洲丰满少妇自慰呻吟_97日韩有码在线_资源在线日韩欧美_一区二区精品毛片,辰东完美世界有声小说,欢乐颂第一季,yy玄幻小说排行榜完本

首頁 > 數據庫 > MySQL > 正文

MySql修改數據庫編碼為UTF8避免造成亂碼問題

2024-07-24 13:01:15
字體:
來源:轉載
供稿:網友
mysql 創建數據庫時指定編碼很重要,很多開發者都使用了默認編碼,亂碼問題可是防不勝防。制定數據庫的編碼可以很大程度上避免倒入導出帶來的亂碼問題。

網頁數據一般采用UTF8編碼,而數據庫默認為latin 。我們可以通過修改數據庫默認編碼方式為UTF8來減少數據庫創建時的設置,也能最大限度的避免因粗心造成的亂碼問題。

我們遵循的標準是,數據庫,表,字段和頁面或文本的編碼要統一起來
我們可以通過命令查看數據庫當前編碼: mysql> SHOW VARIABLES LIKE 'character%';
發現很多對應的都是 latin1,我們的目標就是在下次使用此命令時latin1能被UTF8取代。

第一階段:
mysql設置編碼命令

復制代碼 代碼如下:


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%'; 你可以看到全變為 utf8 。
但是,這只是一種假象

此種方式只在當前狀態下有效,當重啟數據庫服務后失效。
所以如果想要不出現亂碼只有修改my.ini文件,
從my.ini下手(標簽下沒有的添加,有的修改)
[client]
default-character-set=utf8
[mysql]
default-character-set=utf8
[mysqld]
default-character-set=utf8
以上3個section都要加default-character-set=utf8,平時我們可能只加了mysqld一項。
然后重啟mysql,執行
mysql> SHOW VARIABLES LIKE 'character%';
確保所有的Value項都是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 無法設置成UTF8 交互時候仍然會出現亂碼。

第二階段:找到下面這東東
X:/%path%/MySQL/MySQL Server 5.0/bin/MySQLInstanceConfig.exe
重新啟動設置,將默認編碼設置為utf8.這樣就能達到我們所要的效果了。
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
另外注意事項:

1、建表時加utf8,表字段的Collation可加可不加,不加時默認是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、網頁xxx.php/jsp保存時選擇utf8編碼,頁頭最好加上
header('conten-type:text/html;charset=utf-8');
在執行CRUD操作前先執行一下
mysql_query("set names utf8");

-------------------------
連接數據庫設置編碼
jdbc:mysql://地址:3306/數據庫名?characterEncoding=utf8
-------------------------
java中的常用編碼UTF-8;GBK;GB2312;ISO-8859-1;
對應mysql數據庫中的編碼utf8;gbk;gb2312;latin1
發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
主站蜘蛛池模板: 宁都县| 广宁县| 泾川县| 天祝| 文安县| 吐鲁番市| 晋宁县| 定结县| 永寿县| 日照市| 苍南县| 沈阳市| 阿巴嘎旗| 额尔古纳市| 高邮市| 常宁市| 应城市| 洪泽县| 阿荣旗| 石首市| 太仆寺旗| 日照市| 潍坊市| 涪陵区| 奎屯市| 太仓市| 云和县| 莲花县| 鄱阳县| 鹤峰县| 始兴县| 西平县| 新乡县| 玛沁县| 马边| 广灵县| 瑞安市| 建湖县| 吴江市| 永定县| 自贡市|