mysql數據庫插入中文亂碼或問號--解決歷程

   今天在做一個項目的時候用到了數據庫,需要將winform中的數據導入到數據庫,一開始寫的時候因爲都是英文界面沒有注意,等有一個需要導入的中文時問題來了!!出現了問號,鬱悶,,好吧,既然問題來了項目時間還算充裕,自己查資料解決。結果弄了一下午,走了各種彎路,在這裏把我的經歷寫下來,爲遇到同樣問題的朋友提供一些參考,也提醒自己,下次遇到問題多思考,要看到問題的本質再去解決。

   對於字符集的支持細化到四個層次: 服務器(server),數據庫(database),數據表(table)和連接(connection)。

   我是這樣想的,既然我不知道具體細節,那我就把4個層次支持的編碼類型都弄成一個類型總不至於還是亂碼了吧。

   服務器編碼設置修改 MySql安裝目錄下面的my.ini(網上一查一堆,不同的版本不同方法)

                                         設置好了可以通過mysql>show variables like "%char%";  查詢

     數據庫,數據表編碼設置mysql>alter database mysqlcode default character set 'utf8';

                                                   mysql>alter table mytable default character set 'utf8';

      或直接通過圖形界面設置,記住如果數據庫或表在修改編碼類型前就已存在,那就要進行重設編碼類型

      設置好了可以通過如下代碼查詢:

                mysql>show create database test; 

                 mysql>show create table yjdb;
      數連接部分編碼設置mysql> set names 'utf8';

      效果等於:mysql> SET character_set_client='utf8';

                     mysql> SET character_set_connection='utf8'
               mysql> SET character_set_results='utf8'

     重點來了!!上述都弄好的話(如果沒看懂再看下其他博客,大同小異),用數據庫命令執行一下INSERT INTO table VALUES(‘中文’,'中文');看數據庫能不能顯示中文,如果數據庫中能顯示。再試試通過程序輸入的值能不能在數據庫中顯示,如不能顯示執行下面的步驟:
   在數據庫連接字符串中增加字符集的說明,Charset=utf8,如
   MySQLConnection con = new MySQLConnection("server=127.0.0.1;uid=root;pwd=;database=test;Charset=utf8"); 

   OK,,總體就是這些,我想如果上述都沒問題的話應該問題也解決了,,筆者也是到最後一步才解決了這個問題。。。
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章