Запись в базу данных Oracle кириллицы через Post запрос на C++

Рейтинг: 1Ответов: 1Опубликовано: 10.11.2014

Кодировка базы данных utf8. Кодировка сайта тоже utf8. Но в итоге туда записываются вопросительные знаки/ромбики. Используется, собственно, OCI.

Ответы

▲ 2

Проверьте настройки клиентской части Oracle. Если дело проиисходит в Windows то надо проверить ключ реестра, если в *NIX системах - переменную окружения NLS_LANG.
Чтобы не мучиться с руссифицированными сообщениями об ошибках рекомендую присвоить переменной значение AMERICAN_AMERICA.AL32UTF8.
Переменная окружения работает и в Windows, причём имеет приоритет перед настройками в реестре. Достаточно в командной строке выполнить команду

set NLS_LANG=AMERICAN_AMERICA.AL32UTF8

и затем запустить приложение в том же окне из командной строки (ну или сделать сооветствующий командный файл).

Подробнее про настройки можно почитать здесь или здесь.

Если не устраивает зависимость от настройки среды на компьютере с которого осуществляется соединение то можно указать желаемую кодировку при инициализации соединения при помощи OCIAttrSet() (документация).