1. 程式人生 > >C# 操作MYSQL時 部分中文亂碼問題

C# 操作MYSQL時 部分中文亂碼問題

在專案上,發現向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,出現如下圖 解決Mysql中文亂碼以及Incorrect <wbr>string <wbr>value的問題
這裡一共顯示了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'; 來改變編碼集。
伺服器端的編碼集可以通過Mysql Server Instance Configuration來更改。如下 解決Mysql中文亂碼以及Incorrect <wbr>string <wbr>value的問題
解決Mysql中文亂碼以及Incorrect <wbr>string <wbr>value的問題
解決Mysql中文亂碼以及Incorrect <wbr>string <wbr>value的問題 database的編碼集則通過 alter database db default character set 'utf8'; 來更改。 這步操作後,一般就可以正常支援中文了,如果還不行的話,在新建table的時候加上default charset=utf8就可以了。比如 create table test( name varchar(50) not null )default character set utf8;