在mysql所建立的表中插入中文資料出現錯誤,
報錯incorrect string value: '\xe6\x89\x8b\xe6\x9c\xba' for column 'cname' at row 1;
錯誤原因是在字段'cname'字段插入中文資料,因為建表時沒有註明編碼格式,則預設使用mysql預設編碼latin1(瑞典)
這時為了在表**入中文資料,需要更改mysql編碼格式。
首先我們在mysql安裝目錄下找到my_default.ini配置檔案,將其複製乙份重新命名為my.ini,在其中加入以下配置
[client]
default-character-set = utf8
[mysqld]
default-storage-engine = innodb
character-set-server = utf8
collation-server = utf8_general_ci
client是mysql客戶端編碼格式設定,這裡把所有編碼格式變為utf8.
儘管把mysql編碼格式改了,以前已經建立的資料庫、表以及表中字段使用的編碼還是latin1
這裡可以使用show create database | table database_name/table_name檢視資料庫及**建立時的編碼格式
這時我們要修改以前建立資料庫表時用的預設編碼:
修改資料庫的編碼格式
alter database buybackshop(資料庫名) character set utf8;
修改表的編碼格式
alter table category(表名) character set utf8;
修改表字段的編碼格式
alter table category(表名) modify cname(表中欄位名) varchar(50) character set utf8;
通過這幾條命令可以把以前已經建立的資料庫、表、字段編碼格式更改。
一般避免出現編碼問題,建立資料庫以及表的時候,寫sql語句都會加上編碼格式的設定
如:
MySQL編碼格式
mysql在5.5.3之後增加了這個utf8mb4的編碼,mb4就是most bytes 4的意思,專門用來相容四位元組的unicode。好在utf8mb4是utf8的超集,除了將編碼改為utf8mb4外不需要做其他轉換。當然,為了節省空間,一般情況下使用utf8也就夠了。二 內容描述 那上面說了既...
JSP中編碼格式問題的解決
幾種不同的編碼情況 在jsp頁面對接收到的request請求進行編碼格式修正 request.setcharacterencoding utf 8 在接收到資料後,對字串編碼格式進行修正 eclipse tomcat環境預設為iso 8859 1 編碼格式 string name new strin...
oracle的編碼格式,解決亂碼問題
修改oracle的編碼格式,解決亂碼問題 查詢客戶端字符集 select userenv language from dual 1 管理員使用者連線 sql conn sys 密碼 as sysdba 2 關閉資料庫。sql shutdown immediate 3 啟動資料庫到mount狀態下。s...