首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >在MySql4中通过ASP.NET插入unicode文本

在MySql4中通过ASP.NET插入unicode文本
EN

Stack Overflow用户
提问于 2013-08-12 12:15:33
回答 1查看 560关注 0票数 0

我正在为一个学院写一个新的网站,其中有4000个用户存储在MySql4!

我使用MySql -连接器/网通过MySql连接到asp.net数据库,

一切都很好,除了更新在unicode模式下的信息!

不幸的是,我对unicode不太了解!

从MySql数据库连接和读取数据如下所示:

代码语言:javascript
复制
using MySql.Data.MySqlClient;
...
MySqlConnection con;
MySqlCommand cmd;

string tempstr = "Database=DB-NAME;Data Source=SOURCE;charset=utf8;User Id=USER;Password=PASS";
con = new MySqlConnection(tempstr);
con.Open();
cmd = con.CreateCommand();
cmd.CommandText = "select * from list_membership";
cmd.CommandType = CommandType.Text;
MySqlDataReader reader = cmd.ExecuteReader();
reader.Read();

举个例子,当我读到一个地址时,我得到了这样的信息:,for,for,§,§,

幸运的是,我已经使用这个函数解决了这个问题:

代码语言:javascript
复制
public string DecodeFromUtf8(string utf8String)
{
   // copy the string as UTF-8 bytes.
   byte[] utf8Bytes = new byte[utf8String.Length];
   for (int i = 0; i < utf8String.Length; ++i)
   {
       //Debug.Assert( 0 <= utf8String[i] && utf8String[i] <= 255, "the char must be in byte's range");
       utf8Bytes[i] = (byte)utf8String[i];
   }
   return Encoding.UTF8.GetString(utf8Bytes, 0, utf8Bytes.Length);
}

现在,我将无用的字符串发送到函数中,并得到如下正确的格式:زنجان(波斯语)

问题是,例如,当我想更新或插入地址字段时,除了这样的问号:之外,没有任何东西会存储在数据库中。

有人知道我该怎么做吗?!DecodeFromUtf8函数有什么反形式吗?

对不起,我的英语很差,谢谢。

EN

回答 1

Stack Overflow用户

发布于 2013-08-12 13:19:50

我不知道这是否有助于解决这个问题,但是DecodeFromUtf8的反面应该如下所示:

代码语言:javascript
复制
public string EncodeToMySQL4(string str)
{
   Encoding latin1 = new Encoding(1252);
   return latin1.GetString(Encoding.UTF8.GetBytes(str));
}
票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/18186741

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档