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();
答案 0 :(得分:2)
确保表数据库的排序规则是UTF-8排序规则(即utf8_general_ci
或其关系之一)
将Charset=utf8;
添加到您的连接字符串。
“服务器=本地主机;数据库=测试; UID =测试; PWD =测试;字符集= UTF8;”
来源:MySQL C# Text Encoding Problems
无论如何,如果它无法解决,你可以存储字节而不是字符串。但可能这不是解决问题的最好方法......
UTF8Encoding utf8 = new UTF8Encoding();
string unicodeString = "โกดัง";
byte[] encodedBytes = utf8.GetBytes(unicodeString);
然后当你需要时你可以回到字符串:
Encoding.UTF8.GetString(encodedBytes);
答案 1 :(得分:0)
您应该将源代码文件保存为UTF-8。
你试过这个吗?