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

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



          沒有所謂的命運,只有不同的選擇!
          主站蜘蛛池模板: 东兰县| 闸北区| 永定县| 黑龙江省| 司法| 鄯善县| 潜山县| 礼泉县| 保定市| 明光市| 大安市| 禹州市| 合水县| 永登县| 永和县| 昌平区| 左权县| 土默特右旗| 晋江市| 长丰县| 额济纳旗| 阳原县| 徐水县| 瑞丽市| 新干县| 东辽县| 贵阳市| 烟台市| 芒康县| 汪清县| 苍溪县| 三河市| 太康县| 八宿县| 浮山县| 光山县| 固始县| 建水县| 江城| 军事| 罗源县|