Mysql пишет текст на blob-объекте с помощью UTF8
При записи на поле Blob-объекта с кодировкой UTF 8 , карактер записи являются неправильными
таблица tb_Language
кодировка и параметры сортировки кодировке utf8 -- utf8_bin
двигатель InnoDb
if insert the string by hand with MySqlWorkBench the result is correct
Что я уже пробовал:
MySqlCommand cmdMySqlN = new MySqlCommand("", Connection); cmdMySqlN.CommandText = "INSERT INTO tb_Language (Text) VALUES (@text)"; ; try { myTrans = Connection.BeginTransaction(); Encoding utf8 = Encoding.UTF8; //Unicode string: string test = "abcéabc Colón à @ ç § "; byte[] utfBytes = utf8.GetBytes(test); //parameter for Blob cmdMySqlN.Parameters.AddWithValue("@text", utfBytes); cmdMySqlN.Transaction = myTrans; cmdMySqlN.ExecuteNonQuery(); myTrans.Commit(); } catch (Exception ex) { myTrans.Rollback(); string Message = "Error " + ex.Message; }
read with MySqlWorkBench and the result is <pre>abcéabc Colón à @ ç §
may be here the error byte[] utfBytes = utf8.GetBytes(testo);
Mehdi Gholam
Каково значение, когда вы читаете из c#?
Richard MacCutchan
Проблема заключается в наборе символов, который вы используете для их отображения. Если вы проверите фактические значения байтов данных, они будут такими же, как и при их сохранении.