|
Неверная кодировка 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
|
|
Чтобы обнаруживать ошибки, программист должен иметь ум, которому доставляет удовольствие находить изъяны там, где, казалось, царят красота и совершенство. Фредерик Брукс-младший