Самым популярным решением этой проблемы было выполнить следующий запрос для установки необходимой кодировки после подключения:
SET NAMES utf8
Это и у меня работало в Perl и PHP, а вот в C# – не сработало.
И тут-то пошли извращения, дошло даже до такого:
string UtfConv(string strToConvert)
{
return System.Text.Encoding.UTF8.GetString(System.Text.Encoding.Default.GetBytes(strToConvert));
}
Хорошо, что этот способ не сработал.
А оказалось, что стоит лишь немного подправить ConnectionString, указав в нем заветную кодировку:
И MySQL ConnectionString превращается…:
"server=localhost;uid=root;pwd=root;database=deeprss "
… превращается в следующий:
"server=localhost;uid=root;pwd=root;database=deeprss;charset=utf8"
Параметр я вычитал тут:
21.2.6. Connector/NET Connection String Options Reference
Все таблицы в БД у меня в utf8.