Если идет обращение к MySQL серверу с помощью MySQL C API, то
на стороне клиента в параметрах соединения необходимо указать кодировку,
в которой будут передаваться строковые данные.
Нужно поставить "cp2151".
Если не указывать то, как правило, (при дефолтной инсталяции сервера) строки будут приходить в UTF-8.
на стороне клиента в параметрах соединения необходимо указать кодировку,
в которой будут передаваться строковые данные.
Нужно поставить "cp2151".
Если не указывать то, как правило, (при дефолтной инсталяции сервера) строки будут приходить в UTF-8.
forex-investor писал (а):
Если идет обращение к MySQL серверу с помощью MySQL C API, то
на стороне клиента в параметрах соединения необходимо указать кодировку,
в которой будут передаваться строковые данные.
Нужно поставить "cp2151".
Если не указывать то, как правило, (при дефолтной инсталяции сервера) строки будут приходить в UTF-8.
Если идет обращение к MySQL серверу с помощью MySQL C API, то
на стороне клиента в параметрах соединения необходимо указать кодировку,
в которой будут передаваться строковые данные.
Нужно поставить "cp2151".
Если не указывать то, как правило, (при дефолтной инсталяции сервера) строки будут приходить в UTF-8.
А да, забыл сказать, что ряд состоит только из числел. В прочем задал cp-1251 тезультат тот же. :(
Судя по приведенным логам суть проблемы иммено в том, что
от сервера клиенту приходит строка в кодировке UTF-8, которая из dll
пробрасывается в код на mql4, где эта строка отображается естественно
в cp1251.
Это говорит о том, что при установлении коннекта к MySQL в dll неправильно
задаеся кодировка клиента.
Делаться это должно примерно так:
Если этот кусок кода не поможет, то не знаю в чем дело.
от сервера клиенту приходит строка в кодировке UTF-8, которая из dll
пробрасывается в код на mql4, где эта строка отображается естественно
в cp1251.
Это говорит о том, что при установлении коннекта к MySQL в dll неправильно
задаеся кодировка клиента.
Делаться это должно примерно так:
if (!mysql_init(&conn)) { printf("Can't create mysql descriptor\n"); return 0; } mysql_options(&conn, MYSQL_SET_CHARSET_DIR, "C:\\Program Files\\MySQL\\MySQL Server 5.0\\share\\charsets"); mysql_options(&conn, MYSQL_SET_CHARSET_NAME, "cp1251"); printf("try connect: \n"); if (!mysql_real_connect(&conn, "localhost", "user1", "pass", "database1", 0, NULL, 0)) { printf("Can't connect to database: %d\n", mysql_errno(&conn)); return 0; }
Если этот кусок кода не поможет, то не знаю в чем дело.
Крайне красиво, спасибо! :)

Вы упускаете торговые возможности:
- Бесплатные приложения для трейдинга
- 8 000+ сигналов для копирования
- Экономические новости для анализа финансовых рынков
Регистрация
Вход
Вы принимаете политику сайта и условия использования
Если у вас нет учетной записи, зарегистрируйтесь
Господа, доброго времени суток,
может кто-то сталкивался с кодировками? Феч ряда, вынутого из базы данных выдает следующее:
Может кто-то имеет хоть какие-нить идеи на этот счет? :(