在向Mysql中添加中文數據時,報錯(incorrect string value ) 字符轉換不正確
插入語句:mysql> insert into user1 (name,password,email,age) values ('zs',md5('123456'),'zs@sohu.com',30);
返回錯誤:ERROR 1366 (HY000): Incorrect string value: '\xE5\xBC\xA0\xE4\xB8\x89' for column 'name' at row 1
將插入語句中的中文改為英文后問題消失,順利出入
插入語句:mysql> insert into user1 (name,password,email,age) values ('趙六',md5('123456'),'zl@sohu.com',60);
這個問題,原因是UTF-8編碼有可能是兩個、三個、四個字節。而Mysql的utf8編碼最多3個字節,遇到超過3個字節的的數據就插不進去。
在網上找到了解決辦法
1.在Mysql的安裝目錄下有一個文件叫做my.ini。(如沒有可以自己新建一個)
在其中添加兩句:
[mysqld]
character-set-server=utf8mb4
[mysql]
default-character-set=utf8mb4
然后進行重啟Mysql服務。
也可以用命令將數據庫轉換格式
alter database 數據庫名 character set utf8mb4 collate utf8mb4_general_ci;
2.將已經建好的表也轉換為utf8mb4格式
alter table 表名 convert to character set utf8mb4 collate utf8mb4_bin;