Ответ 1
Server=myServerAddress;Database=myDataBase;Uid=myUsername;Pwd=myPassword; CharSet=utf8;
Внимание! Используйте значение нижнего регистра utf8, а не верхний регистр UTF8, поскольку это не удастся.
У меня есть база данных mysql с кодировкой utf8_general_ci,
Я подключаюсь к той же базе данных с помощью php, используя страницу utf-8 и кодировку файла, и никаких проблем но когда соединение mysql с С# я имеет буквы типа ØºØ²Ø ©
i editit строка подключения должна быть такой
server=localhost;password=root;User Id=root;Persist Security Info=True;database=mydatabase;Character Set=utf8
но та же проблема.
Server=myServerAddress;Database=myDataBase;Uid=myUsername;Pwd=myPassword; CharSet=utf8;
Внимание! Используйте значение нижнего регистра utf8, а не верхний регистр UTF8, поскольку это не удастся.
Вы могли бы попробовать:
Server=localhost;Port=3306;Database=xxx;Uid=x xx;Pwd=xxxx;charset=utf8;"
Изменить: у меня появилась новая идея:
//To encode a string to UTF8 encoding
string source = "hello world";
byte [] UTF8encodes = UTF8Encoding.UTF8.GetBytes(source);
//get the string from UTF8 encoding
string plainText = UTF8Encoding.UTF8.GetString(UTF8encodes);
удача
Дополнительная информация об этом методе http://social.msdn.microsoft.com/forums/en-us/csharpgeneral/thread/BF68DDD8-3D95-4478-B84A-6570A2E20AE5
Возможно, вам понадобится использовать набор символов "utf8mb4" для столбца, чтобы поддерживать 4 байтовых символа: "λλ"
Кодировка utf8 поддерживает только 1-3 байта на символ и, следовательно, не может поддерживать все символы Unicode.
Подробнее см. http://dev.mysql.com/doc/refman/5.5/en/charset-unicode-utf8mb4.html.
Одна вещь, которую я нашел, но у меня не было возможности реально просмотреть доступные здесь схемы сортировки: http://www.collation-charts.org/mysql60/
Это покажет вам, какие символы являются частью заданного MySQL-сопоставления, поэтому вы можете выбрать наилучший вариант для своего набора данных.
CHARSET должен быть прописным.
Server=localhost;Port=3306;Database=xxx;Uid=x xx;Pwd=xxxx;CHARSET=utf8;
На всякий случай некоторые приходят сюда позже.
Мне нужно было создать метод Seed с использованием Mysql с EF6 для загрузки файла SQL. После запуска я получил странные символы в базе данных, как? заменяя é, ó, á
РЕШЕНИЕ: Убедитесь, что я прочитал файл, используя правильную кодировку: UTF8 на моем случае.
var path = System.AppDomain.CurrentDomain.BaseDirectory;
var sql = System.IO.File.ReadAllText(path + "../../Migrations/SeedData/scripts/sectores.sql", Encoding.UTF8);
И затем напоминание М.Шакер:
CHARSET = utf8 в строке cxn в web.config. Использование CHARSET в прописном и нижнем регистре utf8.
Надеюсь, это поможет.
R.
Попробуйте:
MySqlConnectionStringBuilder conn_string = new MySqlConnectionStringBuilder();
conn_string.Server = "localhost";
conn_string.UserID = "root";
conn_string.Password = "";
conn_string.Database = "Learning";
conn_string.CharacterSet = "utf8";
conn = new MySqlConnection(conn_string.ToString()) ;