0

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();
4

2 回答 2

2
  1. 确保您的表数据库的排序规则是 UTF-8 排序规则(即utf8_general_ci或其关系之一)

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

“服务器=本地主机;数据库=测试;Uid=测试;密码=测试;字符集=utf8;”

资料来源:MySQL C# 文本编码问题

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

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

然后当你需要时,你可以回到字符串:

Encoding.UTF8.GetString(encodedBytes);
于 2013-04-16T14:21:14.270 回答
0

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

你试过这个吗?

于 2013-04-16T14:24:31.040 回答