|
Неверная кодировка dbf при загрузке в sql базу
|
Я
|
|
Rabindranath Tagore 12.10.20 - 10:25 | Доброго времени!
Читаю файл dbf на sql-серверной базе, отображается неверная кодировка.
Тот же файл корректно читается в файловой базе на том же компьютере где установлен SQL сервер, под WinServer2016.
SQL-Express был переустановлен на русский вариант, чтобы поддерживалась Cyrillic, язык учетной записи админа был поменян на русский, запускаю базу под учеткой администратора-не помогает
В dbf viewer видно, что корректный вид достигается именно кодировкой OEM(DOS) а не ANSI; в прогр.коде кодировка OEM прописана до открытия файла-не помогает, так же как и если указать кодировку после открытия файла
Есть ли идеи, коллеги? |
Ёпрст 1 - 12.10.20 - 12:53 | Больше кода
|
acht 2 - 12.10.20 - 15:08 | ( 0) По стандарту DBF, кодировка OEM - это не русский DOS, как тебе хочется. Это "кодировка, которая установлена поставщиком по умолчанию". Необходимо, чтобы для процесса OС, читающего файл, была установлена русская локаль. |
Rabindranath Tagore 3 - 13.10.20 - 18:01 | |
Rabindranath Tagore 4 - 13.10.20 - 18:04 | ( 2) В свойствах базы данных Язык по умолчанию указан Русский, в настройках языков под учетной записью язык по умолчанию также Русский |
acht 5 - 13.10.20 - 22:55 | ( 4) Под учетной записью чего? |
Rabindranath Tagore 6 - 14.10.20 - 12:25 | ( 5) под учетной WinServer админа |
Rabindranath Tagore 7 - 14.10.20 - 12:27 | Также в конфигураторе sql базы в "Администрировании-Региональные установки ИБ" указано русский (Россия)
|
acht 8 - 14.10.20 - 12:31 | ( 6) Процесс ОС, читающий дбф должен быть запущен с русской локалью. Когда ты читаешь на клиенте, процесс (внезапно) запущен под твоей учеткой пользователя ОС. Когда ты читаешь на сервере, процесс запущен под пользователем ОС сервера приложения. Вот у него и должна стоять русская локаль. |
Rabindranath Tagore 9 - 14.10.20 - 14:45 | Кодировка под sql корректна. Резюмирую моменты, на которые стоит обратить внимание, т.к. что именно из этого помогло-доподлинно неизвестно. Язык учетной системы WindowsServer должен быть выбран русский в Панель управления - Региональные стандарты- Дополнительно ("текущий язык программ, не поддерживающих Юникод")
Пакет установщика SQL сервера должен быть на русском, так же как и установленная платформа 1С и Сервер 1С(проверить до кучи региональные настройки внутри самой БД, в конфигураторе в ветке Админ-ние)
Важный момент, именно после которого кодировка dbf стала выводиться читабельно на русском языке: В регион.настройках панели управления на закладке Дополнительно по кнопке Копировать параметры выставил флаги "Копировать тек.параметры в Экран приветствия... и Новые уч.записи пользователей" и перезагрузил сервер. после этого почему то текущий язык программ, не поддерживающих Юникод выставился на англ, поменял снова на Русский, перезагрузив повторно, и после этого кодировка dbf починилась
Всем спасибо за подсказки!
|
Sserj 10 - 14.10.20 - 15:00 | Скорее всего поможет, замени OEM на ANSI в реестре:
HKEY_LOCAL_MACHINE\SOFTWARE\Wow6432Node\Microsoft\Jet\4.0\Engines\xBase
|
Глупец, лишенный способности посмеяться над собой вместе с другими, не сможет долго выносить программирование.
Фредерик Брукс-младший