posts - 89, comments - 241, trackbacks - 0, articles - 1
             :: 首頁 ::  :: 聯系 :: 聚合  :: 管理

          ERROR 1366 (HY000): Incorrect string value:

          此種亂碼解決方案如下:

          首先,設置自己數據庫的編碼統一:

          Connection id:          81
          Current database:
          Current user:           root@localhost
          SSL:                    Not in use
          Using delimiter:        ;
          Server version:         5.0.67-community-nt MySQL Community Edition (GPL)
          Protocol version:       10
          Connection:             localhost via TCP/IP
          Server characterset:    gbk
          Db     characterset:    gbk
          Client characterset:    gbk
          Conn.  characterset:    gbk

          TCP port:               3306

          隨后到自己的表里面:

          如我的這個表:content 表

          +---------+-------------+------+-----+---------+----------------+
          | Field   | Type        | Null | Key | Default | Extra          |
          +---------+-------------+------+-----+---------+----------------+
          | id      | int(11)     | NO   | PRI | NULL    | auto_increment |
          | ad      | smallint(6) | NO   |     | 0       |                |
          | title   | char(30)    | YES  |     | NULL    |                |
          | author  | varchar(30) | YES  |     | NULL    |                |
          | content | text        | YES  |     | NULL    |                |
          +---------+-------------+------+-----+---------+----------------+

          mysql> insert into content(title,author,content) values('插入成','修改于','文字符');

          立刻報錯:

          ERROR 1366 (HY000): Incorrect string value: '\xD0\xDE\xB8\xC4\xD3\xDA' for colum
          n 'author' at row 1
          mysql> insert into content(title,author,content) values('插入成','修改于','文字
          符');
          ERROR 1366 (HY000): Incorrect string value: '\xD0\xDE\xB8\xC4\xD3\xDA' for colum
          n 'author' at row 1

          想招吧,哎:以下是解決方案:

          mysql> alter table content modify author varchar(30) character set gbk;

          對,就是這一句代碼。很實用的,將表里面的所有列都進行一次這樣的“洗禮”,大功告成!


          ----

          不,還沒完,頁面需要聲明用GBK或者GB2312編碼,而且在頁面需要進行轉碼:

          String content1 = new String(request.getParameter("content1").getBytes("ISO-8859-1"));

          頁面讀取不需要轉碼,寫入需要轉碼



          沒有所謂的命運,只有不同的選擇!
          主站蜘蛛池模板: 红桥区| 张家口市| 山阳县| 华亭县| 临沭县| 诸暨市| 东海县| 梁平县| 呈贡县| 藁城市| 平湖市| 洱源县| 昌平区| 台北县| 元氏县| 满城县| 周至县| 弥勒县| 祁阳县| 舒城县| 灵石县| 建水县| 桓台县| 句容市| 和静县| 澄江县| 宝山区| 天峻县| 池州市| 灵台县| 全椒县| 库车县| 龙岩市| 临夏县| 佛坪县| 札达县| 裕民县| 大连市| 鹤岗市| 临桂县| 竹山县|