① incorrect string value: '\xe6\x94\xbe\xe5\xa4\xa7...' for column 'name' at row 1 query……
原因:編碼不匹配。資料庫是latin1編碼,而插入的中文字串是utf-8編碼。
解決思路:
一、修改資料庫的編碼。
這個解決辦法一勞永逸,省去大量的編碼轉換工作。需要配置資料庫配置引數如下:
開啟資料庫配置檔案my.ini(windows)或者/etc/my.cnf(linux)。
修改或者增加如下引數:
在 [mysql] 標籤下加上一行
default_character_set = utf8
在 [mysqld] 標籤下加上三行
default_character_set = utf8
character_set_server = utf8
collation_server = utf8_general_ci
init_connect = 'set collation_connection = utf8_general_ci'
init_connect = 'set names utf8'
在 [mysql_server]標籤下加上一行
default_character_set = utf8
在 [mysqld_safe]標籤下加上一行
default_character_set = utf8
在 [client]標籤下加上一行
default_character_set = utf8
二、轉換插入的中文字元編碼。
假設插入中文字串srcstr,需要轉換成如下字串:
string insertstr = new string(srcstr.getbytes("utf-8"),"iso-8859-1");
這種思路在取出字串時需要再轉換一次編碼,所以推薦第一種解決辦法。
ps:其實轉換的時候遇到另外乙個問題,就是httpservletrequest列印出來的編碼格式是utf-8,實際轉換編碼的時候用的是gb2312……有人知道這是為什麼嗎?
Mysql問題記錄
1.limit分頁運算 limit分頁時不能在分頁中做運算,所以可以這樣寫 set a concat select a.from select count 1 over as count,name,weight from dwd hospital region statistics where ty...
MySQL相關問題記錄
1 mysql三正規化 第一正規化 每個列都不可以再分,也就是說每一列儲存的內容都不可以再拆分,如位址就應該按照省 市 區等分別建立字段,而不應該放在乙個欄位中。第二正規化 在第一正規化的基礎上,非主鍵要完全依賴於主鍵,而不能部份依賴,換句話說就是一張表只能說明乙個事物。第三正規化,在第二正規化的基...
新手MySQL問題記錄
新手mysql問題記錄 程式語言為python,所以使用的庫pymysql。在pymysql中執行插入的方法兩種,一種是execute 另一種是executemany execute sql 直接可以執行sql語句,但是每次操作一次。尤其是執行插入語句時,只能進行一次查詢。executemany s...