1

我有一个连接到 MySql DB 的 asp.net 页面。

当我尝试将网页中的值插入/更新到数据库中时,字符在数据库中显示为问号(我使用的是 SP)。如果我将直接在数据库中编写查询,它将起作用并且字符将正确显示。

DB 默认字符集是 utf8,列排序规则是 utf8_general_ci。

10 倍,周末愉快 :)

4

2 回答 2

5

最终解决我的问题的方法是将 CharSet=utf8 添加到连接字符串中。

10x 很多人:)

于 2011-02-18T18:07:58.930 回答
1

我相信您的 C# 字符串被视为 unicode 而不是 UTF8

我前段时间发现的片段中的一些示例代码:

System.Text.Encoding utf_8 = System.Text.Encoding.UTF8;

// This is our Unicode string:
string s_unicode = "abcéabc";

// Convert a string to utf-8 bytes.
byte[] utf8Bytes = System.Text.Encoding.UTF8.GetBytes(s_unicode);

// Convert utf-8 bytes to a string.
string s_unicode2 = System.Text.Encoding.UTF8.GetString(utf8Bytes);

MessageBox.Show(s_unicode2);
于 2011-02-18T17:58:24.117 回答