Pobieram dane z Access i ładuje je do MySQL w C# .NET
Robię to albo tak (sqlCommand to string generowany przez kod, dane prosto z Access pobrane przez zapytanie):
string sqlCommand = "INSERT INTO cos VALUES ('zażółć gęślą jaźń')";
MySQLCommand.CommandText = sqlCommand;
MySQLCommand.ExecuteNonQuery();
albo tak:
string sqlCommand = "INSERT INTO cos VALUES ('zażółć gęślą jaźń')";
byte[] znaki = Encoding.Convert(Encoding.UTF8, Encoding.GetEncoding("windows-1250"), Encoding.UTF8.GetBytes(sqlCommand));
MySQLCommand.CommandText = Encoding.GetEncoding("windows-1250").GetString(znaki);
Rezultat ten sam - obcina ogonki, ł->l, ń->n etc. Tylko 'ó' zostaje. Kodowanie MySQL to CP1250 (tak mam narzucone z pewnych względów). Jak to naprawić?
Wysyłanie "SET NAMES cp1250" na początku sesji nic nie zmienia.