Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате
Форум программистов > Базы данных под .NET > odbc + MySql 5. Кодировка сбивается.


Автор: Arks 21.3.2008, 21:15
В БД mySql 5 везде установлена utf8. Исходные файлы программы тоже в utf8. IDE - SharpDevelop.
С помощью odbc пытаюсь данные получать. Получаю либо строку из пробелов и вопросов, если не указываю кодировку в connection string или через запрос "SET NAMES 'utf8'".
Если делаю одно из этих двух вариантов, либо оба сразу, то получаю "кракозябры".
В msdn не нашёл никаких других способов устанавливать кодировку. В MySql проверял, все переменные ответсвенные за кодировку стоят в utf8.
Вот собственно код программы:
Код

private void EstablishConnection()
        {
            string MyConString = "DRIVER={MySQL ODBC 3.51 Driver};" +
                    "SERVER=localhost;" +
                    "DATABASE=building;" +
                    "UID=root;" +
                    "PASSWORD=arksoem;" +
                    "CHARSET=utf8;" +
                    "OPTION=6";
            MyConnection = new OdbcConnection(MyConString);//"DNS=myodbc");
            MyConnection.Open();
            OdbcCommand com = new OdbcCommand("SELECT name FROM building_type",MyConnection);
    //        OdbcCommand com = new OdbcCommand("SET NAMES \'utf8\'",MyConnection);
    //        com.ExecuteNonQuery();
    //        string MyComString = "SELECT name FROM building_type";
    //        com.CommandText = MyComString;
            OdbcDataReader dr = com.ExecuteReader();
            textBox1.Text = "My string. Строка этакая на utf8.";
            listBox1.BeginUpdate();
            while(dr.Read())
            {
                string str = dr.GetString(0);
                listBox1.Items.Add(str);
            }
            listBox1.EndUpdate();
            MyConnection.Close();
        }

Закоментированные строки - это собественно и есть второй вариант с использованием "SET NAMES 'utf8'".
Очень надеюсь на помощь, излазил весь инет зачитал различных документаций до мазолей на глазах уже...

Автор: charodej 21.7.2008, 11:10
Возникла такая же проблема, не отображаются некоторые специфические символы национальных алфавитов, вместо них либо ???? , либо "кракозябры", мне кажется, что проблема в драйвере, который не способен корректно обрабатывать эти символы, пробывал        mysql odbc connector  3.51,  mysql odbc connector  5.1, mysql connector net , каждый раз отображаются разные "кракозябры", если кто то знает как обойти эту проблему, помогите...

Powered by Invision Power Board (http://www.invisionboard.com)
© Invision Power Services (http://www.invisionpower.com)