c# - 如何在 MySQL 数据库中保存印地语字符

标签 c# mysql mysql-workbench

我正在Windows应用程序(C#)中工作,数据库是MySQL。在应用程序中,我正在获取 gmail 收件箱并将其保存到数据库中。但我的问题是,当我在代码 Subject 中使用插入查询时或message列显示印地语消息,但保存在数据库中时显示字符 ????????像这样。我已经改变了 MySQL 中 UTF-8 的所有内容。

当我使用 MySQL 编辑器插入相同内容时,它会以印地语字体保存。这对我来说是一个奇怪的情况,因为我是 MySQL 新手。

  foreach (ImapMessageInfo message in messages)
        {

            InsertMail(message.UniqueId, message.Sender.ToString(), message.To.ToString(), message.Subject.Trim(), message.Date.LocalTime, client.GetMailMessage(message.SequenceNumber).BodyText);

        }



 public void InsertMail(string uid, string from, string to, string subject, DateTime datetime, string message)
    {
        try
        {

            MySqlCommand cmd = new MySqlCommand();

            cmd.Parameters.AddWithValue("@unique_id", uid);
            cmd.Parameters.AddWithValue("@sender", from);
            cmd.Parameters.AddWithValue("@reciever", to);
            cmd.Parameters.AddWithValue("@subject", subject);
            cmd.Parameters.AddWithValue("@date", datetime);
            cmd.Parameters.AddWithValue("@message", message);

            cmd.Parameters.AddWithValue("@mail_status", "unread");
            cmd.Connection = con;
            string query = "Insert Ignore into gmail_inbox(unique_id,sender,reciever,subject,date,message,mail_status) values (@unique_id,@sender,@reciever,@subject,@date,@message,@mail_status) ";
            cmd.CommandText = query;
            cmd.ExecuteNonQuery();
        }
        catch (Exception ex)
        {
            MessageBox.Show(ex.Message);
        }
        finally
        {

        }

    }

最佳答案

检查数据库的字符集和排序规则。使用 UTF8 应该可以让您正确保存这些内容并正确显示它们。另外请确保在初始化连接时将连接字符集设置为 utf8,否则可能会出现其他错误。

基本上,您需要确保列/表和连接字符集是 utf8,然后您应该可以插入所需的数据。

关于c# - 如何在 MySQL 数据库中保存印地语字符,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15972917/

相关文章:

c# - ASP.NET 在每次请求时重新编译

c# - 无法评估表达式,因为代码已优化或 native 框架位于调用堆栈顶部

mysql - 从数据库(php、mysql、laravel)编码 blob 后图像未加载

mysql - 如何记录/写入查询执行期间发生的错误和警告

c# - 使用 C# Windows 窗体应用程序在 datagridview 中拖放

c# - 404自定义重定向

mysql - 将记录从一个表更新到其他 MySQL 非唯一列

php - Laravel,页面刷新后显示数据库记录更新

java - 在 mysql 中检查用户名...如果存在则插入到其他表中否则基表

mysql - SQL - 错误代码 1005,错误编号 121