【问题标题】:C# web service, MySql encoding problemC# web 服务,MySql 编码问题
【发布时间】:2011-05-09 06:20:29
【问题描述】:

我使用 C# Web 服务从 MySql 数据库中插入、删除和获取数据。 问题是一些数据是马其顿语(西里尔语)。

当我直接插入数据库时​​,它插入正常。例如:“дсд”是“дсд”。 当我插入服务时,它不是。例如:“дсд”是“???”。 当我尝试通过服务获取数据时,一切正常。 插入有什么问题?

这是我插入代码的一部分:

    MySqlConnection connection = new MySqlConnection(MyConString);
    MySqlCommand command = connection.CreateCommand();
    command.CommandText = "INSERT INTO user (id_user, name VALUES (NULL, ?name);";
    command.Parameters.Add("?name", MySqlDbType.VarChar).Value = name;
    connection.Open();
    command.ExecuteReader();

    connection.Close();
    return thisrow;

Tnq U 提前!!!

【问题讨论】:

  • 也许在通过 Web 服务的翻译过程中丢失了某些东西,而不是在数据库插入级别?
  • 你有没有想过这个问题?我正在挖掘具有外语字符的 MySQL 数据库的同一区域 C# Web 服务。

标签: c# mysql unicode utf-8


【解决方案1】:

解决办法是在连接字符串中:MyConString = "SERVER=localhost;" + "数据库=你的数据库;" + "charset=utf8;";.

【讨论】:

    【解决方案2】:

    我会查看 Web 服务本身的编码。问题可能在于将文本转换为 SOAP 字符串以发送到服务。字符串数据在 .NET 中默认是 Unicode,所以一旦它到达 Web 服务就可以了。

    要验证这是否是问题所在,请将调试器附加到具有您的代码 sn-p 和在添加参数处或周围设置断点的方法。您分配给参数的字符串“名称”应正确显示在 Watch 或 Locals 窗口中。如果没有,您的代码没有收到您期望的字符串,这可能意味着您的客户端使用 ASCII 或非西里尔文的 ISO 代码页进行编码。

    【讨论】:

    • web 服务中的编码是可以的。问题出在将数据从服务发送到数据库的某个地方!!!
    猜你喜欢
    • 2023-04-09
    • 1970-01-01
    • 1970-01-01
    • 2010-10-30
    • 2021-04-06
    • 1970-01-01
    • 2010-12-15
    • 1970-01-01
    相关资源
    最近更新 更多