ASP.net 读取MySql 数据出现中文乱码!

y120115715 2012-08-27 11:20:56
我用 navicat 在管理数据库,之前没有设置 编码的时候 navicat 表中的中文都是????? 后来在 连接属性-高级-(去掉)MySql字符集(上面的编码是utf-8) 中文就可以显示了。

但是我的asp.net WEB 程序连接MySql获取到的数据 ,中文还是乱码!

网上查询了下,说在 连接数据库的地方 加入 Charset=utf8
例如:
server=localhost;database=b2bdata;uid=root;pwd=123456;Charset=utf8

测试了以下依然是乱码 ,换成gb2312 也不行。。


后来又在网上看到一篇,在查询数据的地方加入 set names utf8

例如:
C# code

public static DataSet Query(string SQLString)
{
using (MySqlConnection connection = new MySqlConnection(connectionString))
{
DataSet ds = new DataSet();
try
{
connection.Open();
//MySqlDataAdapter command = new MySqlDataAdapter(SQLString, connection);
MySqlDataAdapter command = new MySqlDataAdapter("set names utf8", connection);
command.SelectCommand.CommandText=SQLString;
command.Fill(ds, "ds");
}
catch (MySqlException ex)
{
throw new Exception(ex.Message);
}
return ds;
}
}




测试了以下 不管是utf8 还是 gb2312 都是乱码。不知道什么原因!!!

那位大侠帮帮忙啊!!!
...全文
245 11 打赏 收藏 转发到动态 举报
写回复
用AI写文章
11 条回复
切换为时间正序
请发表友善的回复…
发表回复
y120115715 2012-08-27
  • 打赏
  • 举报
回复
查询出来是这个!


character_set_client latin1
character_set_connection latin1
character_set_database latin1
character_set_filesystem binary
character_set_results latin1
character_set_server latin1
character_set_system utf8
character_sets_dir D:\phpcs\MySQL-5.0.90\share\charsets\

y120115715 2012-08-27
  • 打赏
  • 举报
回复
看要什么结果? 查询出来的都是乱码。。。。

我用navicat数据库管理工具 看,里面的中文都能正常显示。

就是c# 查询出来的是乱码, 我一步步调试的,

command.SelectCommand.CommandText=SQLString;
command.Fill(ds, "ds");
执行后,ds里面的中文就是乱码了!!
--小F-- 2012-08-27
  • 打赏
  • 举报
回复
show variables like 'char%' ;
贴出结果来看看。
y120115715 2012-08-27
  • 打赏
  • 举报
回复
MySql 里面哪有nvarchar、ntext???
發糞塗牆 2012-08-27
  • 打赏
  • 举报
回复
对于乱码一般使用Nchar、nvarchar、ntext(后续版本不建议使用),存储、读取的时候加上N,比如insert into a values(N'abc')这样格式,读取的时候可以不用,但是如果使用了临时表,那么临时表的字段类型也要设为N开头的那些。
快溜 2012-08-27
  • 打赏
  • 举报
回复
数据保存的时候用nvarchar类型
y120115715 2012-08-27
  • 打赏
  • 举报
回复
已经加入了,依然是乱码

查询结果如下:
show variables like 'character_set_%';

character_set_client latin1
character_set_connection latin1
character_set_database utf8
character_set_filesystem binary
character_set_results latin1
character_set_server utf8
character_set_system utf8
character_sets_dir D:\phpcs\MySQL-5.0.90\share\charsets\


show variables like 'character%';

character_set_client latin1
character_set_connection latin1
character_set_database utf8
character_set_filesystem binary
character_set_results latin1
character_set_server utf8
character_set_system utf8
character_sets_dir D:\phpcs\MySQL-5.0.90\share\charsets\


show variables like 'collation%';


collation_connection latin1_swedish_ci
collation_database utf8_general_ci
collation_server utf8_general_ci
--小F-- 2012-08-27
  • 打赏
  • 举报
回复
[mysql]
[mysqld]
y120115715 2012-08-27
  • 打赏
  • 举报
回复
我在MY.INI里面没有看到有这个啊!!!
default-character-set=utf8
character-set-server=utf8
--小F-- 2012-08-27
  • 打赏
  • 举报
回复
MY.INI文件在安装目录下
--小F-- 2012-08-27
  • 打赏
  • 举报
回复
[Quote=引用 6 楼 的回复:]
查询出来是这个!


SQL code

character_set_client latin1
character_set_connection latin1
character_set_database latin1
character_set_filesystem binary
character_set_result……
[/Quote]

哦 你这个建议在MY.INI文件里面把
default-character-set=utf8
character-set-server=utf8

重启服务再试试

34,590

社区成员

发帖
与我相关
我的任务
社区描述
MS-SQL Server相关内容讨论专区
社区管理员
  • 基础类社区
  • 二月十六
  • 卖水果的net
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧