幻女free性zozo交孩交/亚洲成人直播/日本视频免费/国产国语videosex另类

教你解決MySQL數(shù)據(jù)庫亂碼

2013-12-11 22:21:11 來源:華軍數(shù)據(jù)恢復(fù) 作者:網(wǎng)站管理員 閱讀:

       ITbrand第35次發(fā)布數(shù)據(jù)庫品牌排行榜。微軟的SQL Server排名第二,說明微軟SQL Server的受歡迎度是非常不錯的。

       相信很多站長都知道m(xù)ysql的,mysql在創(chuàng)建 數(shù)據(jù)庫時指定編碼很重要,很多開發(fā)者都使用了默認(rèn)編碼,亂碼問題可是防不勝防,讓很多使用者感到頭疼。

       今天筆者教你解決MySQL數(shù)據(jù)庫亂碼,告訴你制定數(shù)據(jù)庫的編碼可以很大程度上避免倒入導(dǎo)出帶來的亂碼問題。

  網(wǎng)頁數(shù)據(jù)一般采用UTF8編碼,而數(shù)據(jù)庫默認(rèn)為latin 。我們可以通過修改數(shù)據(jù)庫默認(rèn)編碼方式為UTF8來減少數(shù)據(jù)庫創(chuàng)建時的設(shè)置,也能最大限度的避免因粗心造成的亂碼問題。
 
  我們遵循的標(biāo)準(zhǔn)是,數(shù)據(jù)庫,表,字段和頁面或文本的編碼要統(tǒng)一起來
 
  我們可以通過命令查看數(shù)據(jù)庫當(dāng)前編碼:
 
  mysql> SHOW VARIABLES LIKE "character%';
 
  發(fā)現(xiàn)很多對應(yīng)的都是 latin1,我們的目標(biāo)就是在下次使用此命令時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個section都要加default-character-set=utf8,平時我們可能只加了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 交互時候仍然會出現(xiàn)亂碼。
 
  第二階段:找到下面這東東
 
  X:\%path%\MySQL\MySQL Server 5.0\bin\MySQLInstanceConfig.exe
 
  重新啟動設(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、建表時加utf8,表字段的Collation可加可不加,不加時默認(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保存時選擇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;
 
  對應(yīng)mysql數(shù)據(jù)庫中的編碼utf8;gbk;gb2312;latin1
       
       MySQL數(shù)據(jù)庫有亂碼的用戶,可以試試,效果不錯的,推薦使用!
  • 華軍行數(shù)據(jù)恢復(fù) - 最新圖文資訊
  • 最新資訊導(dǎo)讀
  • 推薦內(nèi)容
  • 熱點(diǎn)內(nèi)容
CopyRight2014-2016 華軍數(shù)據(jù)恢復(fù)中心 版權(quán)所有 浙ICP備15017254號-4 成功案例 | 華軍資訊 | 技術(shù)專題 | RSS地圖