ERROR 1366 (HY000): Incorrect string value:(
此種亂碼解決方案如下: 首先,設(shè)置自己數(shù)據(jù)庫的編碼統(tǒng)一: 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編碼,而且在頁面需要進行轉(zhuǎn)碼: String content1 = new String(request.getParameter("content1").getBytes("ISO-8859-1")); 頁面讀取不需要轉(zhuǎn)碼,寫入需要轉(zhuǎn)碼 *******這個就是編碼的問題,可能在裝MySql 的時候選擇的是默認的編碼,或者你選擇的UTF8,所以在插入數(shù)據(jù)的時候出現(xiàn)編碼的錯誤,解決方法是找到Mysql的安裝目錄下的my.ini文件,把里 面的default-character-set=GBK 但是需要注意,這里設(shè)成GBK之后在頁面里面也需要設(shè)成GBK,否則會出現(xiàn)編碼不一致,會出現(xiàn)亂碼。******* 以上摘自:http://apps.hi.baidu.com/share/detail/4794512 總結(jié)一下,進入mysql控制臺后查看某表的字段出現(xiàn)中文亂碼時,若該字段為abc,類型為char(1),則: mysql> alter table content modify abc char(1) character set gbk; 然后再: mysql> charset gbk; 這樣再次查詢表時就不會出現(xiàn)中文亂碼了,jsp頁面里也正常顯示了。 今天晚上裝載數(shù)據(jù)的時候又出現(xiàn)了問題(新建的數(shù)據(jù)庫),折騰了好久都沒成功,后來和中午的那個數(shù)據(jù)庫對比了一下。 查看數(shù)據(jù)各相關(guān)字符編碼:show variables like '%char%'; SET NAMES用于把三個會話系統(tǒng)變量character_set_client,character_set_connection和character_set_results設(shè)置為給定的字符集。 我先是執(zhí)行了:set names gbk; 還是沒用,又show variables like '%char%';原來新的這個數(shù)據(jù)庫的編碼不是gbk; 設(shè)置某個數(shù)據(jù)庫的編碼:alter database testdb character set gbk; 結(jié)果可以裝載數(shù)據(jù)了,呵呵! |
|
來自: 風(fēng)-2012 > 《我的圖書館》