В областях, где использование памяти имеет свою премию, указатели удобны. Например, рассмотрим минимаксный алгоритм, в котором тысячи узлов будут генерироваться с использованием рекурсивной подпрограммы, а затем использовать их для оценки следующего наилучшего движения в игре, способности освобождения или сброса (как в интеллектуальных указателях) значительно уменьшают потребление памяти. В то время как переменная non-pointer продолжает занимать пространство до тех пор, пока рекурсивный вызов не вернет значение.
Предположим, что ваша строка взята из 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
what is the best db encoding?
, и самый проголосовавший ответ сказалutf8_unicode_ci
– Jidic 13 July 2018 в 09:04utf8_unicode_ci
-COLLATION
- для упорядочения. Это подразумеваетCHARACTER SET utf8
, который является «кодировкой», а только 3-байтными символамиUTF-8
. Чтобы получить Emoji и все китайцы, используйтеCHARACTER SET utf8mb4
. – Rick James 13 July 2018 в 18:18