2013-04-16 145 views
0

WHERE status ='โกดัง'“我试试这个不行(这是utf8(泰文))我需要在C#中设置一些东西来使它知道是utf8还是导致我不能用 'โกดัง'c#mysql select where where条件

我使用C#和MySQL的代码是工作,直到我填的WHERE状态= 'โกดัง' 前字符串声明cmdtext = “SELECT * FROM trackingbymail”;它的工作

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(); 
+1

“它不起作用”你介意多描述一下吗? – tnw

+2

检查你的数据库的排序规则和字符集http://stackoverflow.com/questions/11170133/using-mysql-with-django-access-denied-for-user-localhost/11170252#11170252 – matcheek

+0

该代码是工作,直到我在String cmdText =“SELECT * FROM trackingbymail”之前填写WHERE status ='โกดัง';它工作 – user2277775

回答

2
  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); 
+0

这是工作谢谢 – user2277775

0

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

你试过这个吗?