Этот баннер — требование Роскомнадзора для исполнения 152 ФЗ.
«На сайте осуществляется обработка файлов cookie, необходимых для работы сайта, а также для анализа использования сайта и улучшения предоставляемых сервисов с использованием метрической программы Яндекс.Метрика. Продолжая использовать сайт, вы даёте согласие с использованием данных технологий».
Политика конфиденциальности
|
|
|
вопрос про кодовую страницу
|
|||
|---|---|---|---|
|
#18+
Отчетливо понимаю, что всем знающим людям такие вопросы надоели, но может подскажете что-нибудь... Проект пишется в VFP 7.0, базы старые и рабочие - хранятся, редактируются и будут редактироваться в 2.6, т.е. у всех *.dbf кодовая страница 866. И, конечно, когда запускается .ехе все русские буквы становятся иероглифами. В config.fpw прописано CODEPAGE 1251, команда CPCONVERT( ) не дает нужного результата. Раньше вроде что-то типа ansitooem помогало (в VFP 5.0), или я путаю чего и просто торможу :) ? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 13.04.2004, 14:54 |
|
||
|
вопрос про кодовую страницу
|
|||
|---|---|---|---|
|
#18+
Раньше в форуме была уже ссылка на эту статью. У меня символы другие отображаются, не такие как в статье показаны. Видимо, мне что-то другое нужно сделать, к сожалению... ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 13.04.2004, 15:39 |
|
||
|
вопрос про кодовую страницу
|
|||
|---|---|---|---|
|
#18+
А собственно почитать статью влом? :) Список символов приведен для частного случая отсутсвия ковертации из 866 в 1251, но как правило, проблема с кодовой страницей 1252. Т.е. символы-то будут другими, но решение то же самое. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 13.04.2004, 15:51 |
|
||
|
вопрос про кодовую страницу
|
|||
|---|---|---|---|
|
#18+
to Pant: А Вы уверены, что у всех *.dbf кодовая страница 866? Когда-то давно в аналогичной ситуации я использовал CPZERO.PRG, причём сначала обнулял CP, а потом устанавливал нужный код. Можно исправить код CP непосредственно в файле таблицы. Он хранится в 30-м байте заголовка файла (т.е. 30-й байт от начала). Для кодовой страницы 1251 его значение C9 (HEX) - значения кодировок см. в FoxHelp раздел Code Page Supported by Visual FoxPro. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 13.04.2004, 16:05 |
|
||
|
вопрос про кодовую страницу
|
|||
|---|---|---|---|
|
#18+
Я и говорю, что статья прочитана и не раз. И в системном реестре прописано CodePage 1251. Кодовая страница у .dbf точно 866. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 13.04.2004, 16:23 |
|
||
|
вопрос про кодовую страницу
|
|||
|---|---|---|---|
|
#18+
Сам не пробовал, но если попробовать в Config'e сделать: CODEPAGE=866 Вдруг заработает? Как я понял, таблицы редактируются в FP for DOS и конвертировать их в CP=1251 нельзя... ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 13.04.2004, 16:32 |
|
||
|
вопрос про кодовую страницу
|
|||
|---|---|---|---|
|
#18+
Проверить, какой именно файл конфигурации захватывает Foxpro и захватывает ли хоть какой-нибудь файл можно через функцию SYS(2019) Посмотри, что именно захватывает EXE при запуске. Есть ли в захватываемом файле строка CODEPAGE=1251 ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 13.04.2004, 16:36 |
|
||
|
вопрос про кодовую страницу
|
|||
|---|---|---|---|
|
#18+
866 в конфиге ничего не дает... .ЕХЕ захватывает именно нужный config.fpw, который хранится в ее же дирректории. У .dbf кодовые страницы менять нельзя. Они параллельно редактируются из-под DOC. Когда в .EXE отрабатывает функция CPCONVERT() буквы меняются, но читать все равно невозможно. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 13.04.2004, 16:55 |
|
||
|
вопрос про кодовую страницу
|
|||
|---|---|---|---|
|
#18+
Хоть всю статью здесь заново переписывай: 1) Что возвращает CPCURRENT() (без параметра) из EXE ? 2) Есть ли нормальное отображение если запустить прогу не из EXE, а в отладке, НО с рабочими таблицами (т.е. скопировать рабочие таблицы на машину, где идет отладка) ? 3) Иероглифы во всех формах без исключения или в каких-то отдельных ? Во всех объектах формы или только в каких-то отдельных? 4) Иероглифы только для memo-полей или для обычных символьных тоже? Я на что намекаю: все эти проблемы описаны в статье, но вероятно, Вы просто не знаете как и что надо проверить. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 13.04.2004, 18:43 |
|
||
|
вопрос про кодовую страницу
|
|||
|---|---|---|---|
|
#18+
to: Pant У меня так-же как у Вас работает десяток клиентов - FPD2.6а/866 и VFP 7.0/1251 ничего не делал абсолютно, за исключением в config.fp и config.fpw имеют ссылки на 866 и 1251 соответственно. При работе с проектом на VFP проверьте пожалуйста, чтобы все файлы программ были 1251. Проблема еще может быть из-за операционной системы. там должно быть явно установлена Россия... ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 13.04.2004, 23:25 |
|
||
|
вопрос про кодовую страницу
|
|||
|---|---|---|---|
|
#18+
А когда в эксклюзиве таблицу открываешь в фоксе, он не спрашивает в какой кодировке ее открыть. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 15.04.2004, 14:20 |
|
||
|
вопрос про кодовую страницу
|
|||
|---|---|---|---|
|
#18+
to ВладимирМ: CPCURRENT() (без параметра) из EXE возвращает 1252. CPCURRENT() (без параметра) из отладки возвращает 1251. Не нормальное отображение присутствует только в ЕХЕ. В отладке все нормально, не зависимо от того на жестком диске базы или на сервере. Иероглифы отображаются там, где отображаются значения из данных DBF - в Grid (в полях character и memo, где есть русский), Text, Label. И во всех формах проекта. Я на что намекаю: все эти проблемы описаны в статье, но вероятно, Вы просто не знаете как и что надо проверить. Вероятно вероятность правильности предположения - 100%. to Sergey Ch: Все файлы проекта 1251. Проблема еще может быть из-за операционной системы. там должно быть явно установлена Россия... Это где именно нужно посмотреть? to Василий Л: При открытии таблицы в эксклюзиве кодовку не спрашивает. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 17.04.2004, 10:05 |
|
||
|
вопрос про кодовую страницу
|
|||
|---|---|---|---|
|
#18+
To: Василий Л Значит какая-то кодовая таблица там уже есть. Обнулите ее cpzero.prg Я много раз обжигался на следующем месте - использовал FoxPro 2.6 без файла FoxPro.int - после очередного изменения таблицы без этого файла - терялась кодовая таблица... Аналогично происходило и при изменении в FPD 2.5. To: Pant Это зависит от Операционной системы. В Windows 2000 - Control Panel/ Regional Options / Your Locations - Russia Если Росии в списке нет то внизу добавьте Language CYRILLIC ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 17.04.2004, 12:50 |
|
||
|
вопрос про кодовую страницу
|
|||
|---|---|---|---|
|
#18+
То Sergey Ch : У меня Windows 98. Там, как, я понимаю, нужно смотреть в "Региональных стандартах"? Если да, то у меня стоит "Русский". ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 17.04.2004, 12:58 |
|
||
|
вопрос про кодовую страницу
|
|||
|---|---|---|---|
|
#18+
У пользователя, где стоит Windows 2000 и не установлен VFP все идет хорошо. На соседней машине, где тоже стоит Windows 98 и тоже установлен VFP (как у меня) те же проблемы. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 17.04.2004, 14:30 |
|
||
|
вопрос про кодовую страницу
|
|||
|---|---|---|---|
|
#18+
В config.fpw должно быть CODEPAGE=1251 А вообще, плюньте на все и скачайте отсюда библиотеку, котрая понимает только Русский язык: http://www.amit.ru/foxpro/LIB/vfp7tdll.ZIP Но это только к сожалению для VFP 7.0!!! размер 1,8 Mb Что с ней было сделано - описано в FoxClub я только повторил их инструкции. Может и поможет... ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 17.04.2004, 17:05 |
|
||
|
вопрос про кодовую страницу
|
|||
|---|---|---|---|
|
#18+
1. Сначала хотел настоять, чтобы автор еще раз проверил cpdbf(). Типа: надо посмотреть, а действительно ли таблицы маркированы 866-й кодовой страницей - или же маркировка страницы нулевая, а только данные в таблицах в 866й кодировке. 2. Попутно заметил для себя, что если уж CPCURRENT() (без параметра) из EXE возвращает 1252, а из отладки возвращает 1251, то из EXE точно не подхватывается тот config, в котором codepage = 1251. 3. А потом сам поиграл с VFP8 и открыл для себя интересное ;-). 3.0. Открывал в browse 2 таблицы, маркированные первая кодовой страницей 866, а вторая 1251, обе содержащие русские буквы. И вот что: 3.1. если среда (CPCURRENT()) = 1252, то вижу иероглифы в первой таблице (866), а со второй (1251) проблем нет. 3.2. Если среда 1251, то русские буквы в browse читаются в обеих таблицах. 3.3. А если среда 866-я, то в обеих таблицах иероглифы! Отсюда вывод: чтобы видеть русские буквы по-русски, нужно всегда ставить страницу среды 1251. 2 ВладимирМ: Статью читал. Думал. Осталось ощущение, что чего-то не понимаю. Плакал. Пришел к выводу, что поддержка многоязыковости реализована в восьмерке (и, видимо, в семерке тоже) как-то некорректно. Ощущение, что чего-то не понимаю, не прошло. 2Pant: Все-таки не хватает EXE нужный config. Или хватает, но тогда в нем не написано "CODEPAGE=1251". А если написано, то может вместо первой латинской C русская С написана. Вот так. ;-Р ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 18.04.2004, 00:00 |
|
||
|
вопрос про кодовую страницу
|
|||
|---|---|---|---|
|
#18+
Загляни в форум по Windows - там недавно объясняли как 1252 приравнять к 1251 ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 18.04.2004, 10:56 |
|
||
|
вопрос про кодовую страницу
|
|||
|---|---|---|---|
|
#18+
Для всех полей типа Character : repl all <поле> with oemtoansi(<поле>) Всё :-) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 19.04.2004, 09:30 |
|
||
|
вопрос про кодовую страницу
|
|||
|---|---|---|---|
|
#18+
Так и не понятно, в чем была проблемма. Помогла простая переустановка Visual FoxPro. Теперь все работает просто прекрасно! Так приятно видеть русские буквы! Всем огромнейшее спасибо! ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 19.04.2004, 11:17 |
|
||
|
вопрос про кодовую страницу
|
|||
|---|---|---|---|
|
#18+
2 Pant До VFP6 включительно если в файле Config.FPW нет строки CODEPAGE=..., то используется текущая кодовая страница системы. Причем, это касается как этапа отладки, так и готового EXE. А вот начиная с 7 версии все несколько по другому. На этапе отладки в этом случае по прежнему берется кодовая страница системы, а в готовом EXE принудительно используется кодовая страница 1252 (win eng) вне зависимости от кодовой страницы системы. Если в готовом EXE Вы получили CPCURRENT()=1252, это значит, что в файле CONFIG.FPW вообще нет строки CODEPAGE=... Это может быть, если Вы используете 2 файла конфигурации: на этапе отладки и на этапе исполнения. Причем последний Вы включили внутрь EXE (include). В этом случае SYS(2019) изнутри EXE будет показывать, что файл CONFIG.FPW лежит в той же директории, что и сам EXE, но физически он будет расположен не "рядом", а "внутри" EXE. Если окажется, что "рядом" лежит еще один файл CONFIG.FPW, то можно легко перепутать о чем идет речь. При загрузке среды FoxPro будет использован именно тот файл, который включен внутрь EXE. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 19.04.2004, 12:10 |
|
||
|
вопрос про кодовую страницу
|
|||
|---|---|---|---|
|
#18+
to ВладимирМ: Вы попали в самую точку. На самом деле, в проекте был включенный config со строкой CODEPAGE=AUTO. А при запуске эта ехе копировалась с сервера в дирректорию, где тоже есть config, но уже с CODEPAGE=1251. Извиняюсь, за отнятое время. Большое спасибо. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 19.04.2004, 12:36 |
|
||
|
|

start [/forum/topic.php?fid=41&tid=1596787]: |
0ms |
get settings: |
8ms |
get forum list: |
15ms |
check forum access: |
4ms |
check topic access: |
4ms |
track hit: |
49ms |
get topic data: |
9ms |
get forum data: |
4ms |
get page messages: |
53ms |
get tp. blocked users: |
2ms |
| others: | 259ms |
| total: | 407ms |

| 0 / 0 |
