Имя: Пароль:
1C
1С v8
Неверная кодировка dbf при загрузке в sql базу
,
0 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
Больше кода
2 acht
 
12.10.20
15:08
(0) По стандарту DBF, кодировка OEM - это не русский DOS, как тебе хочется. Это "кодировка, которая установлена поставщиком по умолчанию". Необходимо, чтобы для процесса OС, читающего файл, была установлена русская локаль.
3 Rabindranath Tagore
 
13.10.20
18:01
(2)
4 Rabindranath Tagore
 
13.10.20
18:04
(2) В свойствах базы данных Язык по умолчанию указан Русский, в настройках языков под учетной записью язык по умолчанию также Русский
5 acht
 
13.10.20
22:55
(4) Под учетной записью чего?
6 Rabindranath Tagore
 
14.10.20
12:25
(5) под учетной WinServer админа
7 Rabindranath Tagore
 
14.10.20
12:27
Также в конфигураторе sql базы в "Администрировании-Региональные установки ИБ" указано русский (Россия)
8 acht
 
14.10.20
12:31
(6) Процесс ОС, читающий дбф должен быть запущен с русской локалью. Когда ты читаешь на клиенте, процесс (внезапно) запущен под твоей учеткой пользователя ОС. Когда ты читаешь на сервере, процесс запущен под пользователем ОС сервера приложения. Вот у него и должна стоять русская локаль.
9 Rabindranath Tagore
 
14.10.20
14:45
Кодировка под sql корректна. Резюмирую моменты, на которые стоит обратить внимание, т.к. что именно из этого помогло-доподлинно неизвестно. Язык учетной системы WindowsServer должен быть выбран русский в Панель управления - Региональные стандарты- Дополнительно ("текущий язык программ, не поддерживающих Юникод")

Пакет установщика SQL сервера должен быть на русском, так же как и установленная платформа 1С и Сервер 1С(проверить до кучи региональные настройки внутри самой БД, в конфигураторе в ветке Админ-ние)

Важный момент, именно после которого кодировка dbf стала выводиться читабельно на русском языке: В регион.настройках панели управления на закладке Дополнительно по кнопке Копировать параметры выставил флаги "Копировать тек.параметры в Экран приветствия... и Новые уч.записи пользователей" и перезагрузил сервер. после этого почему то текущий язык программ, не поддерживающих Юникод выставился на англ, поменял снова на Русский, перезагрузив повторно, и после этого кодировка dbf починилась

Всем спасибо за подсказки!
10 Sserj
 
14.10.20
15:00
Скорее всего поможет, замени OEM на ANSI в реестре:
HKEY_LOCAL_MACHINE\SOFTWARE\Wow6432Node\Microsoft\Jet\4.0\Engines\xBase