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"));

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



          沒有所謂的命運,只有不同的選擇!
          主站蜘蛛池模板: 饶平县| 织金县| 红河县| 喀喇沁旗| 陇川县| 乐平市| 泾川县| 宁德市| 蒙阴县| 新津县| 曲靖市| 石家庄市| 杨浦区| 阜阳市| 石楼县| 延吉市| 凤城市| 沙雅县| 金沙县| 蓬莱市| 绥棱县| 城固县| 开平市| 平阳县| 盱眙县| 临城县| 崇左市| 拜泉县| 广水市| 突泉县| 武穴市| 锡林浩特市| 特克斯县| 文登市| 泸水县| 蒙自县| 通州区| 二连浩特市| 靖江市| 龙川县| 灌阳县|