Подтвердить что ты не робот

Кодировка С# Mysql 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

но та же проблема.

4b9b3361

Ответ 1

Server=myServerAddress;Database=myDataBase;Uid=myUsername;Pwd=myPassword; CharSet=utf8;

Внимание! Используйте значение нижнего регистра utf8, а не верхний регистр UTF8, поскольку это не удастся.

См. http://www.connectionstrings.com/mysql

Ответ 2

Вы могли бы попробовать:

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

Ответ 3

Возможно, вам понадобится использовать набор символов "utf8mb4" для столбца, чтобы поддерживать 4 байтовых символа: "λλ"

Кодировка utf8 поддерживает только 1-3 байта на символ и, следовательно, не может поддерживать все символы Unicode.

Подробнее см. http://dev.mysql.com/doc/refman/5.5/en/charset-unicode-utf8mb4.html.

Ответ 4

Одна вещь, которую я нашел, но у меня не было возможности реально просмотреть доступные здесь схемы сортировки: http://www.collation-charts.org/mysql60/

Это покажет вам, какие символы являются частью заданного MySQL-сопоставления, поэтому вы можете выбрать наилучший вариант для своего набора данных.

Ответ 5

CHARSET должен быть прописным.

Server=localhost;Port=3306;Database=xxx;Uid=x xx;Pwd=xxxx;CHARSET=utf8;

Ответ 6

На всякий случай некоторые приходят сюда позже.

Мне нужно было создать метод 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.

Ответ 7

Попробуйте:

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