【问题标题】:c# mysql select with where conditionc# mysql select with where条件
【发布时间】:2013-04-08 23:28:36
【问题描述】:

WHERE status= 'โกดัง'" 我试试这个它不起作用(它是 utf8(泰语)我需要在 C# 中设置一些东西以使其知道是 utf8 还是因为我不能使用'โกดัง '

我使用 c# 和 mysql,直到我在 String cmdText = "SELECT * FROM trackingbymail" 之前填写 WHERE status= 'โกดัง' 之前,代码都是有效的。它的工作原理

String str = @"server=localhost;database=asianimport;userid=tga;password=se57ui849;";


String cmdText = "SELECT * FROM trackingbymail WHERE  status=  'โกดัง' ";
                MySqlCommand cmd = new MySqlCommand(cmdText, con);
                MySqlDataReader reader = cmd.ExecuteReader();

【问题讨论】:

  • “它不起作用”你介意描述得更详细一点吗?
  • 检查你的数据库的排序规则和字符集stackoverflow.com/questions/11170133/…
  • 代码一直有效,直到我在 String cmdText = "SELECT * FROM trackingbymail" 之前填写 WHERE status= 'โกดัง' ;它工作

标签: c# mysql


【解决方案1】:
  1. 确保您的数据库表的排序规则是 UTF-8 排序规则(即utf8_general_ci 或其关系之一)

  2. Charset=utf8; 添加到您的连接字符串中。

"Server=localhost;Database=test;Uid=test;Pwd=test;Charset=utf8;"

来源:MySQL C# Text Encoding Problems

无论如何,如果无法解决,您可以存储字节而不是字符串。但可能这不是解决这个问题的最佳方法......

UTF8Encoding utf8 = new UTF8Encoding();
string unicodeString = "โกดัง";
byte[] encodedBytes = utf8.GetBytes(unicodeString);

那么当你需要的时候你可以回到字符串:

Encoding.UTF8.GetString(encodedBytes);

【讨论】:

    【解决方案2】:

    您应该将源代码文件保存为 UTF-8。

    你试过了吗?

    【讨论】:

      猜你喜欢
      • 2019-05-12
      • 2011-11-28
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2012-05-27
      • 1970-01-01
      相关资源
      最近更新 更多