Вход | Регистрация
 
1С:Предприятие :: 1С:Предприятие 8 общая

Неверная кодировка dbf при загрузке в sql базу

Неверная кодировка 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
(2)
   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

Список тем форума
Рекламное место пустует  Рекламное место пустует
ВНИМАНИЕ! Если вы потеряли окно ввода сообщения, нажмите Ctrl-F5 или Ctrl-R или кнопку "Обновить" в браузере.