| Bug #27502 | UTF characters inserts into tables as "???" (c# + connector/net) | ||
|---|---|---|---|
| Submitted: | 28 Mar 2007 15:44 | Modified: | 13 Apr 2007 14:05 |
| Reporter: | Psy After | Email Updates: | |
| Status: | Can't repeat | Impact on me: | |
| Category: | Connector / NET | Severity: | S2 (Serious) |
| Version: | 5.0.23 | OS: | Any (unix) |
| Assigned to: | CPU Architecture: | Any | |
[28 Mar 2007 15:44]
Psy After
[28 Mar 2007 15:45]
Psy After
MySql version is 5.0.23 connector/net version - tried with 5.0.3,5.0.5,5.0.6
[13 Apr 2007 14:05]
Tonci Grgin
Hi and thanks for your report.
I am unable to verify it:
- MySQL 5.0.38BK on WinXP Pro SP2
- c/Net 5, latest sources, NET FW 2.0
Server version: 5.0.38-log Source distribution
mysql> show variables like "%char%";
+--------------------------+-----------------------------+
| Variable_name | Value |
+--------------------------+-----------------------------+
| character_set_client | latin1 |
| character_set_connection | latin1 |
| character_set_database | utf8 |
| character_set_filesystem | binary |
| character_set_results | latin1 |
| character_set_server | utf8 |
| character_set_system | utf8 |
| character_sets_dir | C:\mysql507\share\charsets\ |
+--------------------------+-----------------------------+
Test case:
using (MySqlConnection c = new MySqlConnection("DataSource=localhost;Database=test;UserID=root;Password=;PORT=3306;charset=utf8"))
{
c.Open();
MySqlCommand cmd = new MySqlCommand("DROP TABLE IF EXISTS testbug25528", c);
cmd.ExecuteNonQuery();
cmd.CommandText = "CREATE TABLE testBug25528("
+ "Id INT UNSIGNED NOT NULL AUTO_INCREMENT PRIMARY KEY,"
+ " translationValue char(255)"
+ "\n)ENGINE=InnoDB DEFAULT CHARACTER SET utf8 COLLATE utf8_general_ci;";
cmd.ExecuteNonQuery();
cmd.CommandText = "insert into testBug25528 values(NULL,'Mössbauer Effect')";
cmd.ExecuteNonQuery();
cmd.CommandText = "insert into testBug25528 values(NULL,'Some Cro chars: ŠĐČĆŽšđčćž')";
cmd.ExecuteNonQuery();
cmd.CommandText = "SELECT * FROM testBug25528";
cmd.ExecuteNonQuery();
MySqlDataAdapter da = new MySqlDataAdapter("SELECT * FROM testbug25528", c);
DataTable dt = new DataTable();
da.Fill(dt);
Assert.AreEqual(2, dt.Columns.Count);
Assert.AreEqual(2, dt.Rows.Count);
DisplayData(dt);
Console.WriteLine("Done.");
dt.Clear();
da.Dispose();
c.Close();
}
private static void DisplayData(System.Data.DataTable table)
{
foreach (System.Data.DataRow row in table.Rows)
{
foreach (System.Data.DataColumn col in table.Columns)
{
Console.WriteLine("{0} = {1}", col.ColumnName, row[col]);
}
Console.WriteLine("============================");
}
}
Output:
Id = 1
translationValue = Mössbauer Effect
============================
Id = 2
translationValue = Some Cro chars: ŠĐČĆŽšđčćž
============================
Done.
If you can provide me with more info regarding this, please reopen the report.
