• <ins id="pjuwb"></ins>
    <blockquote id="pjuwb"><pre id="pjuwb"></pre></blockquote>
    <noscript id="pjuwb"></noscript>
          <sup id="pjuwb"><pre id="pjuwb"></pre></sup>
            <dd id="pjuwb"></dd>
            <abbr id="pjuwb"></abbr>

            woaidongmao

            文章均收錄自他人博客,但不喜標題前加-[轉(zhuǎn)貼],因其丑陋,見諒!~
            隨筆 - 1469, 文章 - 0, 評論 - 661, 引用 - 0
            數(shù)據(jù)加載中……

            在Java中解決MySQL5.0中文字符集問題全程詳細記錄

                 今天被MySQL的中文字符集問題弄得焦頭爛額,最終還是解決了.下面分享一下解決過程。
            在網(wǎng)上搜索了很多,網(wǎng)友也有很多精彩的帖子,
            但是每個人的情況不總是一樣,所以我覺得我下面的文字有存在的必要。
            裝了MySQL5.0后,系統(tǒng)默認的字符集似乎是UTF8,但是不知道為什么就是不支持中文。
            下面的是我的痛苦的解決過程。
            將數(shù)據(jù)庫用character set 和 collate指定字符集為gbk,
            mysql> create database test2  DEFAULT CHARACTER SET gbk COLLATE gbk_chinese_ci;
            Query OK, 1 row affected (0.00 sec)
            mysql> create table a(a text);
            Query OK, 0 rows affected (0.14 sec)
            插入的時候也用_gbk指定字符集,
            mysql> insert a values(_gbk'默認數(shù)據(jù)庫的字符集和');
            Query OK, 1 row affected (0.05 sec)
            但是查詢的時候還是出現(xiàn)亂。
            mysql> select * from a;
            +--------------------------------+
            | a                              |
            +--------------------------------+
            | 榛樿鏁版嵁搴撶殑瀛楃闆嗗拰           |
            +--------------------------------+
            1 row in set (0.00 sec)
            mysql>
            好的,那么是不是創(chuàng)建表也要指定字符集呢?
            我們繼續(xù)測試:
            mysql> create table b(a text) DEFAULT CHARACTER SET gbk COLLATE gbk_chinese_ci;
            Query OK, 0 rows affected (0.06 sec)
            mysql> insert b values(_gbk'默認數(shù)據(jù)庫的字符集和');
            Query OK, 1 row affected (0.01 sec)
            mysql> select * from b;
            +--------------------------------+
            | a                              |
            +--------------------------------+
            | 榛樿鏁版嵁搴撶殑瀛楃闆嗗拰           |
            +--------------------------------+
            1 row in set (0.00 sec)
            mysql>
            同樣出現(xiàn)亂碼?
            我們不用_gbk指定字符集呢?
            mysql> insert b values('默認數(shù)據(jù)庫的字符集和');
            ERROR 1406 (22001): Data too long for column 'a' at row 1
            mysql> insert a values('默認數(shù)據(jù)庫的字符集和');
            ERROR 1406 (22001): Data too long for column 'a' at row 1
            這樣發(fā)現(xiàn)根本就插入不進數(shù)據(jù)。
            那么到底該怎么解決呢?
            運行下面的這幾行命令,就能看到正常的中文了:
            mysql> SET character_set_connection = gbk;
            Query OK, 0 rows affected (0.00 sec)
            mysql> SET character_set_database = gbk;
            Query OK, 0 rows affected (0.00 sec)
            mysql> SET character_set_results = gbk;
            Query OK, 0 rows affected (0.00 sec)
            mysql> SET character_set_server = gbk;
            Query OK, 0 rows affected (0.00 sec)
            mysql>
            mysql> SET collation_connection = gbk_bin;
            Query OK, 0 rows affected (0.00 sec)
            mysql> SET collation_database = gbk_bin;
            Query OK, 0 rows affected (0.00 sec)
            mysql> SET collation_server = gbk_bin;
            Query OK, 0 rows affected (0.00 sec)
            mysql>
            mysql> select * from a;
            +----------------------+
            | a                    |
            +----------------------+
            | 默認數(shù)據(jù)庫的字符集和                  |
            +----------------------+
            1 row in set (0.00 sec)
            mysql> select * from b;
            +----------------------+
            | a                    |
            +----------------------+
            | 默認數(shù)據(jù)庫的字符集和                  |
            +----------------------+
            1 row in set (0.00 sec)
            mysql>
            這樣設(shè)置之后,也可以正常插入中文了:
            mysql> insert into a values('當然是聯(lián)系 java ');
            Query OK, 1 row affected (0.02 sec)
            mysql> select * from a;
            +----------------------+
            | a                    |
            +----------------------+
            | 默認數(shù)據(jù)庫的字符集和                  |
            | 當然是聯(lián)系 java              |
            +----------------------+
            2 rows in set (0.00 sec)
            mysql>
            但是如果重啟數(shù)據(jù)庫客戶端,那么還是不能正確顯示中文,
            最徹底的方法就是更改MySQL的配置文件。
            在MySQL5.0的安裝目錄找到my.ini文件,將其中以下兩行:
            default-character-set=utf8
            default-character-set=utf8
            改為:
            default-character-set=gbk
            default-character-set=gbk
            重啟MySQL服務(wù)器。
            重新連接:
            mysql> select * from a;
            +----------------------+
            | a                    |
            +----------------------+
            | 默認數(shù)據(jù)庫的字符集和 |
            | 當然是聯(lián)系 java      |
            +----------------------+
            2 rows in set (0.02 sec)
            現(xiàn)在好了,可以直接讀取中文字符了。
            看看插入中文字符情況:
            mysql> insert b values('看看插入中文字符情況:');
            mysql> insert b values('看看插入中文字符情況:');
            Query OK, 1 row affected (0.03 sec)
            mysql> select * from b;
            +------------------------+
            | a                      |
            +------------------------+
            | 默認數(shù)據(jù)庫的字符集和   |
            | 看看插入中文字符情況: |
            +------------------------+
            2 rows in set (0.00 sec)
            mysql>
            下面再看看創(chuàng)建表的情況:
            mysql> create table c(a text);
            Query OK, 0 rows affected (0.06 sec)
            mysql> insert into c values();
            Query OK, 1 row affected (0.01 sec)
            mysql> insert into c values('下面再看看創(chuàng)建表的情況:');
            Query OK, 1 row affected (0.02 sec)
            mysql> select * from c;
            +--------------------------+
            | a                        |
            +--------------------------+
            | NULL                     |
            | 下面再看看創(chuàng)建表的情況: |
            +--------------------------+
            2 rows in set (0.00 sec)
            mysql>
            一切正常了。
            下面看看程序中的情況:
             

            package test;
            /**
            * 該程序用來測試JDBC和MySQL連接,然后插入中文字符到數(shù)據(jù)庫中。
            * 其中用到的表為:
            * CREATE TABLE MessageBoard (
            * ID int(10) unsigned NOT NULL default '0',
            * title varchar(255) NOT NULL default '',
            * content text NOT NULL,
            * author varchar(20) NOT NULL default '',
            * time datetime NOT NULL default '0000-00-00 00:00:00',
            * modifyTime datetime NOT NULL default '0000-00-00 00:00:00',
            * PRIMARY KEY (ID)
            * ) ;
            *
            */

            import java.sql.*;
            public class InsertChineseCharacterJDBC
            {
             static
             {
              try
              {
               //驅(qū)動和odbc不同

               Class.forName ( "org.gjt.mm.mysql.Driver" );
               System.out.println ( "success loading mysql Driver...." );
              } catch ( Exception e )
              {
               System.out.println ( "Error loading mysql Driver....." );
               e.printStackTrace ( );
              }
             }
             /**
              * @param args
              */

             public static void main ( String agrs[] )
             {
              try
              {
               //連接參數(shù)與Access不同

               String url = "jdbc:mysql://localhost/BohaoDB";
               //建立連接

               Connection con = DriverManager.getConnection ( url, "root", "011124" );
               //建立發(fā)送SQL命令的Statement對象

               Statement stmt = con.createStatement ( );
               //返回查詢結(jié)果

               int flag = stmt.executeUpdate ( "insert into MessageBoard(ID,title,content,author,time,modifyTime) values(1,'大家好!','我是新來,請多多關(guān)照!','zieckey','2007-01-28 20:03:50','2007-01-27 20:03:50');" );
               if ( 1==flag )
               {
                System.out.println ("插入中文字符到數(shù)據(jù)庫成功!");
               }else {
                System.out.println ("插入中文字符到數(shù)據(jù)庫失敗!");
               }
               ResultSet rs = stmt.executeQuery ( "select * from MessageBoard" );

               /**
                * 取出列屬性!
                */

               ResultSetMetaData md = rs.getMetaData ( );
               int col = md.getColumnCount ( );
               for ( int i = 1; i <= col; i++ )
               {
                System.out.println ( md.getColumnName ( i ) + "\t" );
               }
               /**
                * 取出列值!
                */

               while ( rs.next ( ) )
               {
                String strData = "";
                for ( int i = 1; i <= col; i++ )
                {
                 strData = strData + rs.getString ( i ) + "\t";
                }
                System.out.println ( strData );
               }
               //斷開Connection連接

               rs.close();
               stmt.close();
               con.close ( );
              } catch ( SQLException e )
              {
               e.printStackTrace ( );
              }
             }
            }

            運行輸出:
            success loading mysql Driver....
            插入中文字符到數(shù)據(jù)庫成功!
            ID
            title
            content
            author
            time
            modifyTime
            1 大家好! 我是新來,請多多關(guān)照! zieckey 2007-01-28 20:03:50.0 2007-01-27 20:03:50.0

            posted on 2009-06-23 13:22 肥仔 閱讀(545) 評論(0)  編輯 收藏 引用 所屬分類: Web-后臺

            伊人情人综合成人久久网小说| 久久国产成人亚洲精品影院| 国产成人久久精品区一区二区| 久久精品女人天堂AV麻| 久久久女人与动物群交毛片| 激情久久久久久久久久| 69SEX久久精品国产麻豆| 国产精品久久新婚兰兰| 久久精品国产精品亚洲下载| 久久久久四虎国产精品| 久久久久久久久久久久中文字幕 | 99久久香蕉国产线看观香| 成人a毛片久久免费播放| 久久精品www人人爽人人| 777午夜精品久久av蜜臀| 久久九九久精品国产免费直播| 99久久婷婷免费国产综合精品| 久久黄视频| 四虎国产永久免费久久| av无码久久久久久不卡网站| 国产精品久久久天天影视| 91精品国产综合久久久久久| 精品综合久久久久久888蜜芽| 无码精品久久久天天影视| 热re99久久精品国99热| 久久综合精品国产二区无码| 久久天天躁狠狠躁夜夜avapp| 色偷偷88888欧美精品久久久| 亚洲va国产va天堂va久久| 国产成人久久AV免费| 国产成人精品久久免费动漫| 久久青青草原国产精品免费 | 国内精品久久久久久99蜜桃 | 久久精品九九亚洲精品| 久久99精品久久久久婷婷| 国产成人精品免费久久久久| 国产精品视频久久久| 久久高潮一级毛片免费| 久久伊人精品一区二区三区| 色偷偷偷久久伊人大杳蕉| 欧美伊香蕉久久综合类网站|