【很急】.net 插入数据到mysql中 问号

long312268543 2011-07-24 08:16:48
系统中需要一个功能,上传一个excel文件,把excel文件中的数据导入到mysql中。
现在功能已经做好,excel数据也已经插入到数据库中了,但是发现里面的中文都全部成了“?”,出现了乱码的情况。
在webconfig里面也设置了:
<globalization fileEncoding="gbk" requestEncoding="gbk" responseEncoding="gbk" culture="zh-CN" uiCulture="zh-CN" />

还有这page_load也添加了

Encoding gb2312 = Encoding.GetEncoding("gbk");
Response.ContentEncoding = gb2312;
但是插入到mysql中,还是“?”号。

去C:\WINDOWS 下面找 my.ini 没有找到该文件。
请问下大家,还有什么好的配置能解决这个办法,
在网上找了很多办法都没用。晕倒!
...全文
137 8 打赏 收藏 转发到动态 举报
写回复
用AI写文章
8 条回复
切换为时间正序
请发表友善的回复…
发表回复
子夜__ 2011-07-24
  • 打赏
  • 举报
回复
<globalization requestEncoding="utf-8" responseEncoding="utf-8" />
-小蕾- 2011-07-24
  • 打赏
  • 举报
回复
这样的问题是因为

数据库字符集,表字符集,字段字符集都设为:gbk_chinese_ci


注意数据库连接串里面的 Stmt=Set Names 'GBK' ,一定要有这一句。


下面是asp链接mysql的代码。请注意,后面有个GBK。这样就是指定链接的编码类型。根据你使用的数据
库编码类型。修改成你自己的。

ConnectionString ="Driver={MySQL ODBC 3.51
Driver};Server=myserver;Database=mysql;User=myuser;password=mypassword;Option=3;Stmt=Set
Names 'GBK'"

如果使用高版本的mysql,经常出现这样的情况,中文经常为乱码;包括在php中。

参考的方法:


设置一下,mysql的字体.
在mysql.ini加入

[mysql]
default-character-set=gb2312

[client]
default-character-set=gb2312

[mysqld]
default-character-set=gb2312 //或gbk

注册改了后,在改之前的数据库没有效果的.这些数据库目录下的db.opt文件的内容改为

default-character-set=gb2312
default-collation=gb2312_chinese_ci

也可以这么做



dim driverName,chs
driverName="Driver={mysql odbc 3.51
driver};server=localhost;database=test;uid=loaer;pwd=123456;"
set conn=server.createobject("adodb.connection")
conn.open driverName


'查询之前先执行下面这一句
set chs=conn.Execute("SET NAMES 'gb2312'")

'查询数据库表

sql = "SELECT * FROM tb_commondata"
Set rs = conn.Execute(sql)


这样就不会乱码了

我之前遇到过这个问题,主要是要改mysql.ini文件
你仔细看看,有几个地方都涉及到编码。
心灵彩虹 2011-07-24
  • 打赏
  • 举报
回复

  作者刚开始写ASP+程序时候碰到的第一个比较大的问题就是中文显示问题,运行后发现ASP+从数据库中读取出来的中文全部变成了?????????????,有点类似jsp中的这个频率出现最高的ASP.NET中文显示问题了,查了资料发现有两种方法可以轻松解决ASP.NET中文变问号的问题。   

  ASP.NET中文变问号问题解决方法一:

  在翻阅了微软NGWS文档后发现在文档的常见问题部分有提到要添加一个config.web文件到

  web目录下,试了一下,中文显示果然OK了。

  方法如下:

  建立一个文件config.web,内容如下,放在WEB目录下

< configuration> 
< globalization   
requestencoding="utf-8"   
responseencoding="utf-8"   
/>   
< /configuration> 

  后来在网上看到论坛中有人发帖子说将utf-8换成gb2312好像也可以,作者没有试过,大家可以一试。

  ASP.NET中文变问号问题解决方法二:

  后来订阅了微软的新闻组,在微软的新闻组dotnet.framework.aspplus.general中发现有讨论这个问题的文章,方法为添加< %@ CODEPAGE = "936" %>到每一页的开头,有点类似于jsp中的< %@ page contentType="text/html;charset=gb2312"%>

  赶紧测试了一下,果然OK!!!

  例子如下面所示:

< %@ CODEPAGE = "936" %> 
< %@ Import Namespace="System.Data" %> 
< %@ Import Namespace="System.Data.ADO" %> 
< %@ Import Namespace="System.Globalization" %> 
< html> 
< head> 
< meta http-equiv="Content-Type" content="text/html; charset=gb2312"> 
< /head
理不完的逻辑 2011-07-24
  • 打赏
  • 举报
回复
不能解决吗?
我就是这么配置就好了的啊?
long312268543 2011-07-24
  • 打赏
  • 举报
回复
唉。没人知道怎么办了吗?
理不完的逻辑 2011-07-24
  • 打赏
  • 举报
回复
MySQL Server Instance Config Wizard
理不完的逻辑 2011-07-24
  • 打赏
  • 举报
回复
开始 所有程序 找到你的Mysql
然后又个config 重新设置一下 里面有选择utf-8的 就可以了
  • 打赏
  • 举报
回复
肯定是编码格式不统一啊。仔细看下

62,046

社区成员

发帖
与我相关
我的任务
社区描述
.NET技术交流专区
javascript云原生 企业社区
社区管理员
  • ASP.NET
  • .Net开发者社区
  • R小R
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告

.NET 社区是一个围绕开源 .NET 的开放、热情、创新、包容的技术社区。社区致力于为广大 .NET 爱好者提供一个良好的知识共享、协同互助的 .NET 技术交流环境。我们尊重不同意见,支持健康理性的辩论和互动,反对歧视和攻击。

希望和大家一起共同营造一个活跃、友好的社区氛围。

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