powered by simpleCommunicator - 2.0.54     © 2025 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / Microsoft Access [игнор отключен] [закрыт для гостей] / после установки ms office 2010 прилинкованные dbf "забыли" русский язык
12 сообщений из 12, страница 1 из 1
после установки ms office 2010 прилинкованные dbf "забыли" русский язык
    #39433071
S0ME0NE
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
всем добрый вечер.
dBaseIII именно этот формат мои dbf-ки
подскажите пожалуйста
...
Рейтинг: 0 / 0
после установки ms office 2010 прилинкованные dbf "забыли" русский язык
    #39433153
guest_rusimport
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
S0ME0NE,
может в статье Анатолия (Киев) найдется решение? или он сам вам поможет?
http://am.rusimport.ru/msaccess/topic.aspx?id=657
...
Рейтинг: 0 / 0
после установки ms office 2010 прилинкованные dbf "забыли" русский язык
    #39433174
S0ME0NE
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
эта страничка мне недоступна
сообщения Joss я читал перед тем как постить
BDE моих пользователей не было
короче акцесс был 2003-ий, сейчас 2010-ый, система Win XP sp3
все русские буквы стали крякозябрами
зашел в реестр поменял 1252 на 1251 -- не помогло
что-то другое
подскажите пожалуйста
...
Рейтинг: 0 / 0
после установки ms office 2010 прилинкованные dbf "забыли" русский язык
    #39433180
guest_rusimport
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
S0ME0NE,
выдержки из статьи

Отдельная тема - кодировка символов . Для VFP и VDB по умолчанию - ANSI(Win), и 29-й байт (признак CodePage - CP) ими поддерживается всегда. Для более ранних версий - OEM(Dos), и чаще всего в этом байте 0, независимо от того какая в файле кодировка (типичный пример - файлы 1С с ANSI). Кроме того dBase и FoxPro признак CP понимают по разному, а при использовании метода ISAM он и вовсе игнорируется. Варианты применения признака CP (HEX):
Метод OEM 866 ANSI 1251
ISAM Игнорируется, зависит от настроек драйвера.*
ISAM+BDE для файлов FoxPro Игнорируется, зависит от настроек BDE (обычно OEM)
ISAM+BDE для прочих файлов 26 ** 7E ***
VFP Driver, VFP Provider 65 C9
*Для Office2000 и выше настойки по умолчанию драйвера находятся в реестре по адресу:
HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Jet\4.0\Engines\Xbase
Параметр "DataCodePage" может иметь зачения "OEM" или "ANSI". Собственно, это единственный параметр (еще дополнительный "BDE") который приходится править в реестре. Подробнее об этом читайте ниже в разделе ISAM - неправильная кодировка символов.
**Кроме значения 0x26 есть еще целый ряд значений, обеспечивающих чтение с CP866, в т.ч. и 0x65 (как в FoxPro).
***Значение 0x7E я нашел опытным путем. Поиск таблицы соответствия значений признака кодовым страницам не увенчался успехом..
Собственно, разница между "OEM" и "ANSI" в том, что в 1-м случае драйвер при обработке строк использует API функцию OemToChar, и вы не можете вмешаться в этот процесс. Во 2-м случае строки передаются "как есть", и можно, при необходимости, преобразовать текст после (или во время) импорта, или перед экспортом.

...

Неправильная кодировка символов в текстовых и МЕМО полях:
Эта тема уже освещалась выше. Решение проблемы зависит от наличия BDE.
xBase (BDE нет или неактивен). Кодовая страница опеделяется значением параметра "DataCodePage" в указанной ветке реестра, который может иметь зачения "OEM" или "ANSI". Изменения нужно вносить перед запуском Access.
BDE Значение "DataCodePage" игнорируется. Можно изменить значение 29-го байта в заголовке файла на 0x7E для строк в кодировке ANSI. Сделать это можно и оперативно, например:
Open FilePath For Binary As #1
Put #1, 30, CByte(&H7E) 'Байт со смещением 29 (по счету - 30-й)
Close #1
Другие значения в этом байте либо проигнорируются, например 0xC9 (CP1251 в FoxPro), либо приведут к неожиданному результату. Например, 0x03 (CP1252 в FoxPro) вернет иероглифы.
При импорте файла FoxPro (рядом есть CDX или FPT файл) значение этого байта игнорируется.
Типичная проблема с файлами 1С. "DataCodePage" - игнорируется, признак CP - игнорируется тоже.
Что бы можно было прочитать такой файл в правильной кодировке, нужно убрать в сторону CDX и обнулить 28-й байт. Файлам типа FP (есть FPT) не поможет и это. Поэтому к файлам группы FoxPro лучше применять другие из описываемых методов - VFP Driver, VFP Provider.
Можно преобразовать полученный из файла с ANSI кривой текст API функцией CharToOem в правильный, но могут быть проблемы с символами в диапазоне кодов 129-191. И если для текста на русском это, в основном, замена фигурных кавычек на обычные, то для украинского, это замена некоторых национальных символов на "?". Лучший результат получается, если в системе "ANSI" - по умолчанию, а после импорта файла в OEM кодировке преобразовать его API функцией OemToChar или собственной.
Отключить BDE и установить ANSI кодировку по умолчанию можно таким кодом:
Dim WSHShell As Object 'As wshShell
Set WSHShell = CreateObject("WScript.Shell")
'Значение 2 - BDE отключен (только для Access), 0 - BDE активен (если установлен)
WSHShell.RegWrite "HKLM\SOFTWARE\Microsoft\Jet\4.0\Engines\Xbase\BDE", 2, "REG_DWORD"
'Значение может быть "OEM" - DOS или "ANSI" - Windows
WSHShell.RegWrite "HKLM\SOFTWARE\Microsoft\Jet\4.0\Engines\Xbase\DataCodePage", "ANSI"
Этот код можно запустить и из VBS файла, но выполнять коррекцию реестра нужно до загрузки приложения. Вернуть установки можно этим же кодом, но с другими значениями.
Надо отметить что эти исправления можно внести и в ветке реестра:
HKEY_LOCAL_MACHINE\Software\Microsoft\Office\x.0\Access\Jet\4.0\Engines\Xbase
Преимущество в том, что эти настройки будут действовать только для Access, а недостаток в том, что со временем вы можете забыть об этом и безрезультатно бороться с параметрами в основной ветке ...\Microsoft\Jet\4.0\Engines\Xbase.

...
Рейтинг: 0 / 0
после установки ms office 2010 прилинкованные dbf "забыли" русский язык
    #39433187
Фотография mds_world
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
S0ME0NEэта страничка мне недоступна
Даю сохраненную копию
...
Рейтинг: 0 / 0
после установки ms office 2010 прилинкованные dbf "забыли" русский язык
    #39433309
Как приятно...
...
Рейтинг: 0 / 0
после установки ms office 2010 прилинкованные dbf "забыли" русский язык
    #39433674
S0ME0NE
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
поменял значение в реестре
DataCodePage на OEM
крякозябры стали другие

кодировку в самом DBF менять не могу потому что у других пользователей с таким же офис 2010 отображает русский текст нормально
короче пока проблему не решил
...
Рейтинг: 0 / 0
после установки ms office 2010 прилинкованные dbf "забыли" русский язык
    #39433939
guest_rusimport
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
S0ME0NE,
может у вас проблема со шрифтами на этом компе?
попробуйте эту "таблетку" :

Исправляем проблемы со шрифтами
Знаю, что тема эта уже обсуждалась на всех компьютерных форумах, но тем не менее.

1) Создаем текстовый файл fonts.reg.
2) Заносим в него следующий текст:


Windows Registry Editor Version 5.00


;------------
;Исправление глюков с шрифтами
;------------
[HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\Nls\CodePage]
"1250"="c_1251.nls"
"1251"="c_1251.nls"
"1252"="c_1251.nls"
"1253"="c_1251.nls"
"1254"="c_1251.nls"
"1255"="c_1251.nls"


[HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows NT\CurrentVersion\FontMapper]
"ARIAL"=dword:000000cc


[HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows NT\CurrentVersion\FontSubstitutes]
"Arial,0"="Arial,204"
"Arial Cyr,0"="Arial,204"
"Courier,0"="Courier New,204"
"Courier New,0"="Courier New,204"
"Courier New CYR,204"="Courier New,204"
"System,0"="System,204"
"Fixedsys,0"="Fixedsys,204"
"Small Fonts,0"="Small Fonts,204"
"MS Serif,0"="MS Serif,204"
"MS Sans Serif,0"="MS Sans Serif,204"
"Times New Roman,0"="Times New Roman,204"
"Times New Roman Cyr,0"="Times New Roman,204"
"Helv,0"="MS Sans Serif,204"
"Tms Rmn,0"="MS Serif,204"
"Verdana,0"="Verdana,204"
"Tahoma,0"="Tahoma,204"
"Trebuchet MS,0"="Trebuchet MS,204"
"Franklin Gothic Medium,0"="Franklin Gothic Medium,204"
3) Запускаем файл и соглашаемся с внесением изменений в реестр.

После перезагрузки со шрифтами должно быть всё в порядке.

...
Рейтинг: 0 / 0
после установки ms office 2010 прилинкованные dbf "забыли" русский язык
    #39433974
Какой "язык системы" и расположение (страна) в настройках вашего компа?
S0ME0NEпоменял значение в реестре
DataCodePage на OEM
крякозябры стали другие Вообще-то OEM по умолчанию.
...
Рейтинг: 0 / 0
после установки ms office 2010 прилинкованные dbf "забыли" русский язык
    #39434884
S0ME0NE
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
guest_rusimportS0ME0NE,
может у вас проблема со шрифтами на этом компе?
попробуйте эту "таблетку" :

Исправляем проблемы со шрифтами
Знаю, что тема эта уже обсуждалась на всех компьютерных форумах, но тем не менее.

1) Создаем текстовый файл fonts.reg.
2) Заносим в него следующий текст:


Windows Registry Editor Version 5.00


;------------
;Исправление глюков с шрифтами
;------------
[HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\Nls\CodePage]
"1250"="c_1251.nls"
"1251"="c_1251.nls"
"1252"="c_1251.nls"
"1253"="c_1251.nls"
"1254"="c_1251.nls"
"1255"="c_1251.nls"


[HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows NT\CurrentVersion\FontMapper]
"ARIAL"=dword:000000cc


[HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows NT\CurrentVersion\FontSubstitutes]
"Arial,0"="Arial,204"
"Arial Cyr,0"="Arial,204"
"Courier,0"="Courier New,204"
"Courier New,0"="Courier New,204"
"Courier New CYR,204"="Courier New,204"
"System,0"="System,204"
"Fixedsys,0"="Fixedsys,204"
"Small Fonts,0"="Small Fonts,204"
"MS Serif,0"="MS Serif,204"
"MS Sans Serif,0"="MS Sans Serif,204"
"Times New Roman,0"="Times New Roman,204"
"Times New Roman Cyr,0"="Times New Roman,204"
"Helv,0"="MS Sans Serif,204"
"Tms Rmn,0"="MS Serif,204"
"Verdana,0"="Verdana,204"
"Tahoma,0"="Tahoma,204"
"Trebuchet MS,0"="Trebuchet MS,204"
"Franklin Gothic Medium,0"="Franklin Gothic Medium,204"
3) Запускаем файл и соглашаемся с внесением изменений в реестр.

После перезагрузки со шрифтами должно быть всё в порядке.


нет не помогла "таблетка"
в реестр записалось успешно, перезагрузил
перелинковал файлы DBF
все равно не помогло
...
Рейтинг: 0 / 0
после установки ms office 2010 прилинкованные dbf "забыли" русский язык
    #39434891
guest_rusimport
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
S0ME0NE,
вот ещё цитата из одного форума

У меня была эта проблема, когда получал кракозябры в Access-2003. Там проблема решилась изменением записей в реестре:

[HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Jet\4.0\Engines\Xbase]
"DataCodePage"="ANSI"
"BDE"=dword:00000002

После установки Access-2010 это не помогло.
Пришлось перед импортом .dbf-файла в Access в его копии менять 29-ый байт на 0x57 - это кодовая страница 1251 Windows ANSI. Причем это надо делать в .dbf-файле, оторванном от его индекса. Перед этим перепробовал очень много всякого, но только это способ оказался железобетонным. Про 29-ый байт и структуру .dbf-файла - см. http://www.delphikingdom.com/asp/viewitem.asp?catalogid=624
...
Рейтинг: 0 / 0
после установки ms office 2010 прилинкованные dbf "забыли" русский язык
    #39434924
guest_rusimportполучал кракозябры в Access-2003. Там проблема решилась изменением записей в реестре:

[HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\ Jet \4.0\Engines\Xbase]
"DataCodePage"="ANSI"
"BDE"=dword:00000002

После установки Access-2010 это не помогло.
Пришлось перед импортом .dbf-файла в Access в его копии менять 29-ый байт на 0x57 - это кодовая страница 1251 Windows ANSI. Несколько замечаний по этому отрывку:
1. Начиная с Офф2010 настройки драйверов обмена находятся на другой ветке. Например для Офф2010 под Win 7 64b.
HKEY_LOCAL_MACHINE\SOFTWARE\Wow6432Node\Microsoft\ Office \12.0\Access Connectivity Engine\Engines\Xbase Хотя возможно для Xbase они как-то переплетаются.
2. 29-ый байт родным драйвером игнорируется. BDE его контролирует, но согласно моих опытов ANSI, это 0x7E, а не 0x57. К тому же в примере "BDE"=dword:00000002, т.е. отключен.

S0ME0NE не ответил, какой на его компе "язык системы". И еще, после изменений на этих ветках Акс нужно перезагружать.
...
Рейтинг: 0 / 0
12 сообщений из 12, страница 1 из 1
Форумы / Microsoft Access [игнор отключен] [закрыт для гостей] / после установки ms office 2010 прилинкованные dbf "забыли" русский язык
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]