C# 操作MYSQL時 部分中文亂碼問題
阿新 • • 發佈:2019-02-12
在專案上,發現向MySql插入中文資料,有時候就是出錯。
報錯資訊: Incorrect string value: '\xE6\xB9\xA7\xE5\x93\xA5...' for column 'content' at row 1
但是大部分的中文都是沒有問題的,一度不知所以然。。。
今天徹徹底底的將Mysql的字符集統統查了一邊,
發現數據庫是utf8,表是gb2312,我直接無語。
show variables like 'character%';
SHOW FULL COLUMNS FROM `messagemingxi`;
表字段型別為:
更改表的字符集語句:
SHOW FULL COLUMNS FROM `messagemingxi`; alter table `messagemingxi` convert to character set utf8 collate utf8_unicode_ci;
至此,問題解決。其實網上有此問題的相關解決方法:
另外引用:
首先我們進入mysql命令列,輸入命令status,出現如下圖這裡一共顯示了4中字符集,Server characterset是資料庫伺服器的編碼,DB characterset是資料庫的編碼,client characterset是客戶端的編碼,conn characterset是建立連線時使用的編碼。為了很好的相容英文和中文,所有的這些選項強烈建議使用utf8。至少應該保證server characterset這個編碼是utf8。 如果這裡顯示的不是utf8的話,我們可以使用 set character_set_connection = 'utf8'; set character_set_results = 'utf8'; set character_set_client = 'utf8'; 來改變編碼集。
database的編碼集則通過 alter database db default character set 'utf8'; 來更改。 這步操作後,一般就可以正常支援中文了,如果還不行的話,在新建table的時候加上default charset=utf8就可以了。比如 create table test( name varchar(50) not null )default character set utf8;