powered by simpleCommunicator - 2.0.61     © 2026 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / FoxPro, Visual FoxPro [игнор отключен] [закрыт для гостей] / Изменение кодовой страницы в VFP 9 ? По непонятной причине кодировка слетает (с 866 в 0)?
23 сообщений из 23, страница 1 из 1
Изменение кодовой страницы в VFP 9 ? По непонятной причине кодировка слетает (с 866 в 0)?
    #34113035
Alex-ZZZ
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Я начинающий программист в VFP 9.0 . Поетому прошу отвечать по возможности очень доступно объясняя все мелочи (я могу их не знать). СПАСИБО ЗА ВНИМАНИЕ И ОТВЕТЫ. Вопрос такой.

Перекодировал базу в 866 кодировку, с базой весь день работают из разных прог восновном из FP 2.6 и вот однажды (гдето месяц прошел после перекодировки) кодировка вернулась в 0 по необъяснимым причинам.

Вопросов два как автоматом перекодировать базы при входе в программу (чтобы не выскакивало окно с выборам кодировок а само выбиралось 866 и как-будто ничего не произошло) Пробовал команду COPY TO но ето не то.

Второе: как я понял кодовая страница прописывается в заголовок файла - можно узнать куда и как жестко ее туда прописать чтобы она не слетала.

Вопросы может и глупые но злободневные для меня.
...
Рейтинг: 0 / 0
Изменение кодовой страницы в VFP 9 ? По непонятной причине кодировка слетает (с 866 в 0)?
    #34113121
Dima T
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
FPD 2.6 иногда может снять кодировку при монопольных операциях (INDEX, PACK, ZAP)

Я утилиткой пользуюсь y-mail:
y-mail /dcp866 папка - проставляет всем DBF в папке кодовую страницу 866
...
Рейтинг: 0 / 0
Изменение кодовой страницы в VFP 9 ? По непонятной причине кодировка слетает (с 866 в 0)?
    #34113195
AleksMed
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Программа из состава поставки FPD/VFP: CPZERO.PRG
Находиться в директории установки ФОКСА
...
Рейтинг: 0 / 0
Изменение кодовой страницы в VFP 9 ? По непонятной причине кодировка слетает (с 866 в 0)?
    #34113324
Sea_Cat
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Чтобы кодировка не слетала, нужно указывает для FFP2.6 в CONFIG.FP:
codepage=auto
а для VFP (особенно под WINDOWS XP):
codepage=1251
XP почему-то не всегда правильно устанавливает кодовую страницу, иногда CPCURRENT() дает 0
...
Рейтинг: 0 / 0
Изменение кодовой страницы в VFP 9 ? По непонятной причине кодировка слетает (с 866 в 0)?
    #34113368
Alex-ZZZ
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Спасибо всем за ответы завтра буду пробовать(сення рабочий день закончился :))
...
Рейтинг: 0 / 0
Изменение кодовой страницы в VFP 9 ? По непонятной причине кодировка слетает (с 866 в 0)?
    #34113932
leaf
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
кодировка таблицы храниться в 29 байте кажеться
это 30-я позиция в любом 16-м редакторе
...
Рейтинг: 0 / 0
Изменение кодовой страницы в VFP 9 ? По непонятной причине кодировка слетает (с 866 в 0)?
    #34113954
Проходящий
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
А может, прежде чем заниматься шаманством, выяснить таки причину обнуления? Или есть какие-то основания ожидать самоустранения таких причин?
...
Рейтинг: 0 / 0
Изменение кодовой страницы в VFP 9 ? По непонятной причине кодировка слетает (с 866 в 0)?
    #34114415
Alex-ZZZ
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Я утилиткой пользуюсь y-mail:
y-mail /dcp866 папка - проставляет всем DBF в папке кодовую страницу 866[/quot]

А можно поконкретнее куда утилиту надо копировать как запускать из программы или нет
...
Рейтинг: 0 / 0
Изменение кодовой страницы в VFP 9 ? По непонятной причине кодировка слетает (с 866 в 0)?
    #34114425
Alex-ZZZ
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Sea_CatЧтобы кодировка не слетала, нужно указывает для FFP2.6 в CONFIG.FP:
codepage=auto
а для VFP (особенно под WINDOWS XP):
codepage=1251
XP почему-то не всегда правильно устанавливает кодовую страницу, иногда CPCURRENT() дает 0


А где ето (путь можно узнать). И еще ето я понимаю надо на каждом компьютере пользователя делать, тогда ето не выход у нас пользоватоелей около 200. Я бы хотел чтобы может так было например база с кодировкой 0 а у меня в программе она или ее курсор переводится в 866 ето помоему решает проблему.
...
Рейтинг: 0 / 0
Изменение кодовой страницы в VFP 9 ? По непонятной причине кодировка слетает (с 866 в 0)?
    #34114435
Alex-ZZZ
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
AleksMedПрограмма из состава поставки FPD/VFP: CPZERO.PRG
Находиться в директории установки ФОКСА

Мне как раз наоборот не обнулять кодировку надо а выставить ее железно чтобы не слетала. Либо както перекодировать прямо в моей программе.
...
Рейтинг: 0 / 0
Изменение кодовой страницы в VFP 9 ? По непонятной причине кодировка слетает (с 866 в 0)?
    #34114445
Alex-ZZZ
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
leafкодировка таблицы храниться в 29 байте кажеться
это 30-я позиция в любом 16-м редакторе

Я программист начинающий . учился не не программиста вообще поетому можно конкретнее как в 29 байт чето записать и что за 16-м редактор(пример если можно)
...
Рейтинг: 0 / 0
Изменение кодовой страницы в VFP 9 ? По непонятной причине кодировка слетает (с 866 в 0)?
    #34114468
Alex-ZZZ
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
проходящийА может, прежде чем заниматься шаманством, выяснить таки причину обнуления? Или есть какие-то основания ожидать самоустранения таких причин?

Так етим я и мои коллеги сразу и начали заниматься. Оказалось что есть несколько причин одна из которых переиндексация таблиц, другие неизвестны. Но независимо от того что переиндексация может сбросить кодировку нужных мне баз ее делать все равно будут - поетому мне надо искать какойто обходной путь и готовиться к тому что кодировка будет слетать переодически. Например перекодировать прямо у меня в программе (всю таблицу ее курсор или по записям ) . Пробовал CPCONVERT() но она одни ероглифы переводит в другие независимо в какую кодировку запись перекодирую.
...
Рейтинг: 0 / 0
Изменение кодовой страницы в VFP 9 ? По непонятной причине кодировка слетает (с 866 в 0)?
    #34114520
Sergey Sizov
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
2 Alex-ZZZ:

Батенька, мне очень сильно кажется, что у Вас ещё каша в голове по поводу кодировок. Изменение кодовой страницы таблицы и перекодировка информации в таблице - две очень большие разницы. Кодовая страница таблицы всего лишь указание считать данные в таблице сохраненными в такой кодировке. В какой кодировке они сохранены действительно - совершенно другой вопрос. Правильно прочитать , не говоря уж о последующей конвертации, данные можно только при совпадении номера кодовой страницы из заголовка файла и кодовой страницы, в которой сохранены данные.

Определение в каком байте записана кодовая страница, писание собственной программы по заполнению этого байта и т.п. - пустая трата времени, ибо CPZERO идет в поставке фокса и ничего кардинально отличного от нее пока ещё не написал и наврядли напишет.

Если действительно сбивается только кодовая страница файла и кодировка данных в файле действительно 866, то достаточно написать

Код: plaintext
do cpzero with 'YourDbfFile',  866 

и не изобретать велосипед.

Но я все равно еще раз порекомендую разобраться с причинами. Индексация сама по себе не сбрасывает кодовую страницу ибо она к ней имеет очень косвенное отношение и просто не имеет к этому средств.
...
Рейтинг: 0 / 0
Изменение кодовой страницы в VFP 9 ? По непонятной причине кодировка слетает (с 866 в 0)?
    #34114873
Alex-ZZZ
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Sergey Sizov2 Alex-ZZZ:

Батенька, мне очень сильно кажется, что у Вас ещё каша в голове по поводу кодировок. Изменение кодовой страницы таблицы и перекодировка информации в таблице - две очень большие разницы. Кодовая страница таблицы всего лишь указание считать данные в таблице сохраненными в такой кодировке. В какой кодировке они сохранены действительно - совершенно другой вопрос. Правильно прочитать , не говоря уж о последующей конвертации, данные можно только при совпадении номера кодовой страницы из заголовка файла и кодовой страницы, в которой сохранены данные.

Определение в каком байте записана кодовая страница, писание собственной программы по заполнению этого байта и т.п. - пустая трата времени, ибо CPZERO идет в поставке фокса и ничего кардинально отличного от нее пока ещё не написал и наврядли напишет.

Если действительно сбивается только кодовая страница файла и кодировка данных в файле действительно 866, то достаточно написать

Код: plaintext
do cpzero with 'YourDbfFile',  866 

и не изобретать велосипед.

Но я все равно еще раз порекомендую разобраться с причинами. Индексация сама по себе не сбрасывает кодовую страницу ибо она к ней имеет очень косвенное отношение и просто не имеет к этому средств.

Да Вы правы я про кашу. И так как ваш совет мне не помог (do cpzero with 'YourDbfFile', 866) я понимаю что у меня данные в таблице сохранены в какойто левой кодировке (подозреваю что 0 так как вносятся они из прог написанных под fp2.5 ). Но тогда у меня вопрос такой - как изменить кодировку данных в таблице и кодовую страницу таблицы и как ето отразится на тех кто работает с етой базой из под FP2.5 (не будут ли у них отображатся ероглифы),
и что будет с данными которые будут втосить пользователи FP2.5 в мою новую полностью перекодированную таблицу в какой кодировке будут эти данные.

И нужно ли ето вообще может достаточно менять кодовую страницу таблицы и все должно работать ( на другой работе я так и делал 1 год все работало нормально, ничего не слетало).
...
Рейтинг: 0 / 0
Изменение кодовой страницы в VFP 9 ? По непонятной причине кодировка слетает (с 866 в 0)?
    #34117357
Dima T
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Alex-ZZZ

А можно поконкретнее куда утилиту надо копировать как запускать из программы или нет

можешь прямо в папку с DBF скопировать. Создай ярлык, в него только ключ допиши в строку запуска y-mail.com /dcp866 и запускай. Можешь запуск вотнуть куда угодно (автозагрузка, планировщик, в свою прогу), только утилита чисто досовая, сетевых путей не понимает (типа \\server\resurs\). И в момент запуска необходимо чтобы никто DBF не держал открытой.
...
Рейтинг: 0 / 0
Изменение кодовой страницы в VFP 9 ? По непонятной причине кодировка слетает (с 866 в 0)?
    #34117571
Sergey Sizov
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Да Вы правы я про кашу. И так как ваш совет мне не помог (do cpzero with 'YourDbfFile', 866)
Что значит "не помог"? Не проставил кодовую страницу? Или не показались корректные данные?я понимаю что у меня данные в таблице сохранены в какойто левой кодировке (подозреваю что 0 так как вносятся они из прог написанных под fp2.5 ).
Опять каша. Что за 0-ая кодировка? Где взял? Почему решил, что fpd2.5 не знает о кодовых страницах? Сама прога настроена правильно? В config.fp у проги есть строка, начинающаяся на CODE? И если есть, то что в ней после знака равенства? AUTO? или 866? или еще что-то?
Но тогда у меня вопрос такой - как изменить кодировку данных в таблице и кодовую страницу таблицы и как ето отразится на тех кто работает с етой базой из под FP2.5 (не будут ли у них отображатся ероглифы),
и что будет с данными которые будут втосить пользователи FP2.5 в мою новую полностью перекодированную таблицу в какой кодировке будут эти данные.

И нужно ли ето вообще может достаточно менять кодовую страницу таблицы и все должно работать ( на другой работе я так и делал 1 год все работало нормально, ничего не слетало).

По моему глубокому убеждению, прежде чем начать что-то где-то изменять надо хорошенько разобраться в этом "что-то". Пока что наблюдаю гадание на кофейной гуще и попытки налепить побыстрее какую-нибудь заплатку. Хотя последние вопросы и мысли уже направляются в том направлении, которое "мне нравится"
...
Рейтинг: 0 / 0
Изменение кодовой страницы в VFP 9 ? По непонятной причине кодировка слетает (с 866 в 0)?
    #34118459
OMOH
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Нараод что так много текста по старой теме. Все уже было написано и сделано. Поиском пользоваться надо.

Cpzero.prg и присоедененный к проекту текстовый файл который надо обозвать CONFIG.FPW и внутри него написать одну строчку CODEPAGE=1251, и больше для счасть нечего ненадо.

Присоеденяй файл на вкладке Other проекта.
...
Рейтинг: 0 / 0
Изменение кодовой страницы в VFP 9 ? По непонятной причине кодировка слетает (с 866 в 0)?
    #34119564
Alex-ZZZ
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
OMOHНараод что так много текста по старой теме. Все уже было написано и сделано. Поиском пользоваться надо.

Cpzero.prg и присоедененный к проекту текстовый файл который надо обозвать CONFIG.FPW и внутри него написать одну строчку CODEPAGE=1251, и больше для счасть нечего ненадо.

Присоеденяй файл на вкладке Other проекта.

Все ето я проделал и далее сделал так:

SELECT OPER.* FROM OPER INTO DBF (OPER1)
USE
USE (OPER1) ALIAS OPER1

IF CPDBF('OPER1')<>866
DO CPZERO WITH ("OPER1"), 866
ENDIF


DDD1=CPDBF('OPER')
DDD=CPDBF('OPER1')

Как я понимаю DDD должно быть равно 866 но оно = 1251 и все русские буквы в виде ерогльфов. НЕПОНЯТНО . ведь 1251 ето рус.windows.

Пробовал проставить кодовою страницу 1251 просто вручную базе (oper.dbf) -ероглифы как и с кодировкой 0.

Вопрос что в вышеуказанном коде не так почему не выставилась 866 кодировка и почему 1251 код. отображает ероглифы.
...
Рейтинг: 0 / 0
Изменение кодовой страницы в VFP 9 ? По непонятной причине кодировка слетает (с 866 в 0)?
    #34119588
Alex-ZZZ
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
А забыл сказать в CONFIG.FPW CODEPAGE=866 установил т.е. помоему все правильно вроде проделал а все равно ероглифы и 1251 кодировка.
...
Рейтинг: 0 / 0
Изменение кодовой страницы в VFP 9 ? По непонятной причине кодировка слетает (с 866 в 0)?
    #34119878
OMOH
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
А ты сам хоть понял что написал.
Alex-ZZZ
Все ето я проделал и далее сделал так:

SELECT OPER.* FROM OPER INTO DBF (OPER1)
USE
USE (OPER1) ALIAS OPER1

Ты из DBF c неправильной кодировкой выбрал все иероглифы в новую DBF которая уже создется с 1251 кодировкой, т.е. иероглифы скопировальсь в правильную кодировку а не преобразовались.

И потом эту новую DBFку с 1251 кодировеой пытаешся сконвертить в 866ю кодировку
Alex-ZZZ
IF CPDBF('OPER1')<>866
DO CPZERO WITH ("OPER1"), 866
ENDIF

Ну не бред ли.

Cpzero.prg надо конвертить исходную DBF-ку.
До подключения ее к проекту.
Код: plaintext
1.
DO CPZERO WITH 'C:\OPER.DBF',  866 

Ауж потм делать с ней все что захочется.
...
Рейтинг: 0 / 0
Изменение кодовой страницы в VFP 9 ? По непонятной причине кодировка слетает (с 866 в 0)?
    #34119985
Alex-ZZZ
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
OMOH
Cpzero.prg надо конвертить исходную DBF-ку.
До подключения ее к проекту.
Код: plaintext
1.
DO CPZERO WITH 'C:\OPER.DBF',  866 

Ауж потм делать с ней все что захочется.

К сожалению для конвертации утилитой CPZERO нужно открыть базу ексклюзивно, чего я сделать не могу так как с базой постоянно работают. Поетому я и создал новую базу. И мне примерно так в итоге и придется делать только пока не ясно как. Просто захватить базу и поменять код. стр. можно но она постоянно сбрасывается изза использования некоторых команд(например как - pack) в прогах которые тоже работают с етой базой.
...
Рейтинг: 0 / 0
Изменение кодовой страницы в VFP 9 ? По непонятной причине кодировка слетает (с 866 в 0)?
    #34121087
Alex-ZZZ
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Все проблема решена Всем спасибо за советы.

Выбрал такое решение:
1) Проверяю кодовую страницу базы на сети (CPDBF)
2) Eсли надо копирую ее себе (COPY TO)
3) Меняю код.стр. (CPZERO.PRG) и работаю уже с копированной базой
...
Рейтинг: 0 / 0
Период между сообщениями больше года.
Изменение кодовой страницы в VFP 9 ? По непонятной причине кодировка слетает (с 866 в 0)?
    #35345239
йцйцй
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
А возможно ли в случае если кодовая страница таблицы = 0 , указать драйверу работающему с таблицей(соединение настраивается в ODBC) открывать таблицу в кодировке 866?
...
Рейтинг: 0 / 0
23 сообщений из 23, страница 1 из 1
Форумы / FoxPro, Visual FoxPro [игнор отключен] [закрыт для гостей] / Изменение кодовой страницы в VFP 9 ? По непонятной причине кодировка слетает (с 866 в 0)?
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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