標籤:
mysql資料庫中採用charset=latin1,C#讀取時亂碼
第一種方式:
1、連接字串指定Charset=latin1
2、MySqlCommand先執行set names ‘latin1‘,MySqlCommand cmd = new MySqlCommand("set names ‘latin1‘", connection);
cmd .ExecuteNonQuery();
3、讀取時Encoding.UTF8.GetString(Encoding.GetEncoding("latin1").GetBytes(str));//把latin1字元讀取bytes數組,然後採用UTF8編碼讀出來。
第二種方式:
mysql中轉化latin1->UTF8
set names latin1;
create TEMPORARY table tmp(roleid int,rolename varchar(100));
insert into tmp
select roleid,name from table1
where account=in_account;
ALTER TABLE tmp MODIFY COLUMN rolename VARBINARY(50);
ALTER TABLE tmp MODIFY COLUMN rolename varchar(50) character set utf8;
set names utf8;
select roleid,rolename from tmp;
drop table tmp;
參考:
http://www.cnblogs.com/jishu/archive/2012/01/11/2318891.html
http://note.tc.edu.tw/399.html
http://www.cnblogs.com/fdyang/archive/2013/04/20/3032171.html
http://www.oschina.net/question/565065_86411
位元組序問題
http://blog.csdn.net/yeh201111/article/details/8188646
http://blog.okbase.net/haobao/archive/25.html
mysql 中文亂碼