MySql修改數據庫編碼為UTF8

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

本文來自互聯網用戶投稿,該文觀點僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務,不擁有所有權,不承擔相關法律責任。
如若轉載,請注明出處:http://www.pswp.cn/news/249018.shtml
繁體地址,請注明出處:http://hk.pswp.cn/news/249018.shtml
英文地址,請注明出處:http://en.pswp.cn/news/249018.shtml

如若內容造成侵權/違法違規/事實不符,請聯系多彩編程網進行投訴反饋email:809451989@qq.com,一經查實,立即刪除!

相關文章

第六次作業(C語言)

心得體會 該題主要涉及知識點有:1、函數的定義;2、函數的調用(即prime函數的調用);3、素數的判斷;4、大小排序。 看到題時我首先想到了嵌套循環,可是仔細一看題目要求的是用prime函數的調用&…

Javascript系列——對象元素的數組去重實現

概要 這是一篇記錄文,記錄數組操作對象去重的實現。 需求 有這樣一個數組 [{_id: 123,name: 張三 },{_id: 124,name: 李四 },{_id: 123,name: 張三 }] 實際上我們只需要 [{_id: 123,name: 張三 },{_id: 124,name: 李四 }] 去重 簡單數組的去重 Array.from(new Set([…

關于__getattribute__

先看一個案例 class Tree(object):def __init__(self,name):self.namenameself.cateplantdef __getattribute__(self, item):if item大樹:print(log 大樹)return 我愛大樹else:return object.__getattribute__(self,item)aaTree(rrrr) print(aa.name) print(aa.cate) 運行結果…

通過Navicat for MySQL遠程連接的時候報錯mysql 1130的解決方法

來源:互聯網 作者:佚名 時間:10-16 18:41:20 【大 中 小】 錯誤代碼是1130,ERROR 1130: Host xxx.xxx.xxx.xxx is not allowed to connect to this MySQL server 是無法給遠程連接的用戶權限問題 Navicat for mysql 1130錯誤 用…

Java Language Changes for Java SE 9

Java9引入了module模塊的概念,是類與接口和數據資源的一種封裝,并可以聲明與其他模塊的依賴關系。這里總結一下Java9帶來的新特性。更簡練的try-with-resources語句final Resource resource1 new Resource("resource1");//a final resourceRe…

ProtocolHandler繼承體系

轉載于:https://www.cnblogs.com/GooPolaris/p/10815072.html

mysql數據庫存儲過程及調用方法

mysql數據庫存儲過程及調用方法 mysql5.0以后就支持存儲過程了,目前mysql的6.0Alpha版也已經推出。6.0不僅支持大型數據庫如oracle等的絕大部分功 能,如存儲過程、視圖、觸發器、job等等,而且修正了這些功能所存在的bug,其中6.0.1…

紅蜻蜓

日本人なら一度は耳にしたことのある曲でしょう。忘れかけている里山の風景が目に浮かびます。このあたりは昔養蠶が盛んで、何処へ行っても桑畑があったものでしたが、最近はとんと見かけません。小さい頃、よく桑の実をつんで食べたものでした。(このあたりでは&q…

elastic學習筆記

要點 不同工具之間版本匹配很重要由點及面,先實踐起來再學細節的原理和使用 技術棧 laravel5.5框架scout組件elasticsearch6.3.0搜索引擎輔助 elasticsearch-head 查看集群數據可視化 中文分詞插件Ik介紹 laravel是一款現代化的php框架es是搜索引擎es-head是管理查看…

mysql 存儲過程中limit

mysql 存儲過程中limit 1、mysql的高版本(5.5),存儲過程中的limit可以使用變量,如下:select * from student limit iStart,iNum; 2、mysql的低版本(5.1),存儲過程中的limit不能使用…

高頻ES6

var promise new Promise((resolve, reject)> {if (操作成功) {resolve (value)}else{reject(error)} }) promise.than(function (value) {/*成功*/}, function(value) {/*失敗*/}) Promise是異步編程的一種解決方案, 比傳統的解決方案--回調函數和事件更加強大.由社區最早…

NodeJS+Express+MongoDB - 張果 - 博客園

目錄 一、MongoDB 1.1、安裝MongoDB 1.1.1、配置運行環境1.1.2、運行MongoDB1.2、數據庫操作 1.2.1、創建數據庫與查看數據庫1.2.2、刪除數據庫1.2.3、插入數據1.2.4、查詢數據1.2.5、修改1.2.6、刪除二、NodeJS訪問MongoDB 2.1、安裝MongoDB訪問驅動2.2、添加數據2.3、修改數…

一個好用的瀏覽器暗色瀏覽插件 Dark Reader

轉載于:https://www.cnblogs.com/tyong/p/9973363.html

Android小測驗感受

1.運行出現“...keeps stopping” 因為 前臺變量“無值”而后臺卻進行“獲取變量值” 2.switch(int,char...) case break;(不能忘) 3.轉載于:https://www.cnblogs.com/tangxx1996/p/10825134.html

SpringMVC ?注解式傳遞Ztree參數

前端頁面JS處理: $("#save").click( function(){var zTree $.fn.zTree.getZTreeObj("treeDemo" );if(projectType "" || projectType null || projectType undefined){alert( "請選擇項目類型!" ); return…

實驗 4 [bx]和 loop 的使用

實驗結論 實驗1:綜合使用 loop,[bx],編寫完整匯編程序,實現向內存 b800:07b8 開始的連續 16 個字單元重復填充字數據 0403H。 1.源代碼及實驗結果 運行結果:屏幕中央出現一排紅色的心?。 2.將源代碼程序中字數據 0403H→修改為 0…

linux開發工具之gcc

首先gcc編譯鏈接的一個實例如下所示: 接下來看一下gcc的常見選項: gcc的使用示例: 轉載于:https://www.cnblogs.com/wsw-seu/p/10826124.html

怎么解決eclipse報PermGen space異常的問題

怎么解決eclipse報PermGen space異常的問題 最近使用eclipse做開發,使用的服務器是tomcat,但在啟動時報了Caused by: java.lang.OutOfMemoryError: PermGen space的異常。 這個錯誤很常見,于是配置tomcat下的catalina.bat,配置e…

org.hibernate.service.ServiceRegistryBuilder被棄用

看視頻教程是這樣寫的: //創建配置對象Configuration config new Configuration().configure();//創建服務注冊對象ServiceRegistry serviceRegistry new ServiceRegistryBuilder().applySettings(config.getProperties()).buildServiceRegistry();//創建會話工廠對象session…

音頻基本概念

音頻基本概念 聲音的本質 音調:頻率 音量:振幅 音色:與材質有關,諧波(不規則的正玄波) 屏幕快照 2018-12-04 下午1.53.40.png采樣-量化-編碼 采樣大小: 一個采樣用多少bit存放,目前常…