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

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



          沒有所謂的命運,只有不同的選擇!
          主站蜘蛛池模板: 新宁县| 华蓥市| 江华| 时尚| 南澳县| 吉林省| 深圳市| 民勤县| 朝阳区| 竹北市| 赤城县| 托克托县| 阜平县| 石景山区| 轮台县| 清镇市| 乳山市| 东海县| 宽城| 南阳市| 辽宁省| 洛隆县| 临邑县| 宜兴市| 井陉县| 龙南县| 彭水| 婺源县| 聂拉木县| 讷河市| 汝州市| 永善县| 新营市| 东丰县| 神农架林区| 台东市| 离岛区| 环江| 昌吉市| 错那县| 威信县|