wikipedia的mysql utf-8中文在.net中的处理
使用Mysql.Net connector,而不是odbc或oledb进行数据库连接。即使用MySqlConnection, MySqlCommand等类。
然后每次连接数据库之后,先执行SQL: set names 'utf8'
针对 varbinary类型的字段:
输入,
MySqlParameter param = new MySqlParameter("title", MySqlDbType.VarBinary);
param.Value = Encoding.UTF8.GetBytes(“中文标题");
cmd.Parameters.Add(param);
输出:
执行SQL时先转换:select cast(title as char) as title from table,然后代码中row["title"].ToString()即可。
blob
输入,
MySqlParameter param = new MySqlParameter("txt", MySqlDbType.MediumBlob);
param.Value = Encoding.UTF8.GetBytes(content);
cmd.Parameters.Add(param);
输出:
在代码中对数据进行编码转换:Encoding.UTF8.GetString((byte[])dr["content"]]).Trim().
另外,在 phpmyadmin中可以直接insert into values(“中文”),而select时,varbinary可以直接显示为中文,但blob的则不行。
然后每次连接数据库之后,先执行SQL: set names 'utf8'
针对 varbinary类型的字段:
输入,
MySqlParameter param = new MySqlParameter("title", MySqlDbType.VarBinary);
param.Value = Encoding.UTF8.GetBytes(“中文标题");
cmd.Parameters.Add(param);
输出:
执行SQL时先转换:select cast(title as char) as title from table,然后代码中row["title"].ToString()即可。
blob
输入,
MySqlParameter param = new MySqlParameter("txt", MySqlDbType.MediumBlob);
param.Value = Encoding.UTF8.GetBytes(content);
cmd.Parameters.Add(param);
输出:
在代码中对数据进行编码转换:Encoding.UTF8.GetString((byte[])dr["content"]]).Trim().
另外,在 phpmyadmin中可以直接insert into values(“中文”),而select时,varbinary可以直接显示为中文,但blob的则不行。