Ошибка строковой кодировки в базе данных

В областях, где использование памяти имеет свою премию, указатели удобны. Например, рассмотрим минимаксный алгоритм, в котором тысячи узлов будут генерироваться с использованием рекурсивной подпрограммы, а затем использовать их для оценки следующего наилучшего движения в игре, способности освобождения или сброса (как в интеллектуальных указателях) значительно уменьшают потребление памяти. В то время как переменная non-pointer продолжает занимать пространство до тех пор, пока рекурсивный вызов не вернет значение.

1
задан Jidic 13 July 2018 в 08:35
поделиться

1 ответ

Предположим, что ваша строка взята из txt-файла. Откройте ее в блокноте ++, а внизу справа вы увидите кодировку файла. Для этого вы можете использовать следующий код, чтобы «прочитать» вашу строку правильно:

Encoding enc = Encoding.GetEncoding("ENCODE_FROM_NOTEPAD++");
byte[] enc_bytes = Encoding.Convert(Encoding.UTF8, enc, Encoding.UTF8.GetBytes(your_str_initial_value));
string msg = enc.GetString(enc_bytes);

EDIT : Я не уверен, что вы можете решить свою проблему с этим решением, но попробуйте для редактирования строки подключения, как показано ниже:

Driver={MySQL ODBC 5.2 ANSI Driver}; //5.2 is your MySQL version

, что вы используете драйвер ansi

0
ответ дан Legion 17 August 2018 в 13:20
поделиться
  • 1
    Уже пробовал не работал – Jidic 13 July 2018 в 08:55
  • 2
    Я пропускаю эту часть ". Фактически кодирование таблицы базы данных устанавливается в" utf8_unicode_ci " ответ заключается в том, что ваша строка не находится в & quot; utf8_unicode_ci & quot; format ant будет вызываться, когда вы будете читать его в БД, я думаю, вам нужно изменить свой db-кодирование или перекодировать строку в правильном формате, когда вы читаете ее из БД. – Legion 13 July 2018 в 09:01
  • 3
    которые кодируют, вы предлагаете? Я искал what is the best db encoding?, и самый проголосовавший ответ сказал utf8_unicode_ci – Jidic 13 July 2018 в 09:04
  • 4
    зависит от кодировки вашего исходного файла, я думаю ... не существует ответа, который работает во всех случаях ... попробуйте сказать нам кодировку, которую вы видите в блокноте ++, и мы можем попытаться ответить ... Я редактирую свой ответ с некоторыми более полезный материал;) – Legion 13 July 2018 в 09:07
  • 5
    @Jidic - utf8_unicode_ci - COLLATION - для упорядочения. Это подразумевает CHARACTER SET utf8, который является «кодировкой», а только 3-байтными символами UTF-8. Чтобы получить Emoji и все китайцы, используйте CHARACTER SET utf8mb4. – Rick James 13 July 2018 в 18:18
Другие вопросы по тегам:

Похожие вопросы: