解決mysql編碼格式問題

2021-10-01 23:01:51 字數 1254 閱讀 8399

在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...