Member 13174280 Ответов: 0

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

Проблема заключается в наборе символов, который вы используете для их отображения. Если вы проверите фактические значения байтов данных, они будут такими же, как и при их сохранении.

0 Ответов