Когда вы создаете .dbf файлы, Visual FoxPro автоматически дает им маркировку кодовой страницы для того, чтобы вы могли точно сказать, какую кодовую страницу они используют. Однако учтите, что если вы используете .dbf файлы предыдущих версий FoxPro, то они могут не иметь метки кодовой страницы.

Вы можете определить имеет ли .dbf файл метку кодовой страницы с помощью функции CPDBF( ) после открытия файла или позволить Visual FoxPro проверять ее наличие, когда вы открываете файл.

Для автоматической проверки метки кодовой страницы

  1. Из меню Tools (Инструменты) выберите Options (Параметры).

  2. Перейдите на закладку Data.

  3. Установите метку в чек-боксе Prompt for code page (Запрашивать кодовую страницу), если она еще не установлена.

    Для сохранения этой установки для будущих сессий Visual FoxPro, щелкните по кнопке Set as Default.

    NoteСовет

    Вместо установки метки в чек-боксе Prompt for code page (Запрашивать кодовую страницу), вы можете использовать команду SET CPDIALOG для проверки кодовых страниц.

Если файл не имеет метки кодовой страницы, вы должны добавить ее так, как описано в следующих разделах.

Добавление метки кодовой страницы

Если вы используете .dbf файл предыдущих версий FoxPro, файл может и не иметь метки кодовой страницы; без нее данные в файле могут отображаться некорректно. Если разрешена автоматическая проверка кодовой страницы, то в момент, когда вы открываете файл мы можете совершенно определенно сказать, имеет файл метку кодовой страницы или нет и, если метка не установлена, вы можете ее добавить.

Для ввода метки кодовой страницы в .dbf файл вручную

  1. Убедитесь, что автоматическая проверка кодовой страницы включена (смотрите описанную выше процедуру установки автоматической проверки).

  2. Откройте файл.

    Если файл не имеет метки кодовой страницы, то появится диалоговое окно Code Page.

  3. Выберите подходящую вам кодовую страницу.

  4. Просмотрите файл для того, чтобы убедиться в том, что вы выбрали правильную кодовую страницу.

    Если вы не видите каких-то данных, или если вы не можете разобрать их, то это означает, что кодовая страница выбрана неверно.

  5. Если кодовая страница выбрана неверно, удалите метку кодовой страницы с помощью программы CPZERO, которая находится в каталоге Visual FoxPro Tools\Cpzero directory.

  6. При необходимости повторите эту процедуру, пока не получите корректное отображение данных, то есть пока не будет установлена корректная кодовая страница.

    NoteЗамечание

    Текстовые файлы, такие как файлы программ (.prg) и запросов (.qpr) не имеют метки кодовой страницы. Это означает, что вы не можете сказать, какая кодовая страница используется файлом. Однако, если вы включить такие файла в проект, а проект может поддерживать запись для используемой кодовой страницы. Для получения более подробной информации смотрите описание Как: указать кодовую страницу текстового файла.

Удаление метки кодовой страницы

Если данные в табличном .dbf файле не отображаются корректно, то причиной этого может быть неверно выбранная метка кодовой страницы. Вы можете удалить ее с помощью команды CPZERO, размещенной в каталоге Tools\Cpzero. Запуск программы CPZERO устанавливает метку кодовой страницы в 0, что означает ее отсутствие.

Для удаления метки кодовой страницы

  • Запустите программы CPZERO с помощью следующего синтаксиса:

    DO CPZERO WITH "filename", 0

    NoteЗамечание

    Когда вы удаляете метку кодовой страницы .dbf файла, данные в файле не изменяются. Для изменения кодовой страницы данных, вы должны маркировать файл правильной кодовой страницей.

Изменение метки кодовой страницы

Вы можете изменить кодовую страницу .dbf файла удалением ее метки кодовой страницы с последующим вводом новой, путем копирования файла в другой файл или с помощью программы CPZERO.

Для изменения кодовой страницы .dbf файла с помощью копирования файла

  • Используйте команду COPY TO, указав требуемую кодовую страницу в опции AS. (Для установки кодовой страницы в текущую системную кодовую страницу, опустите в команде опцию AS.)

    Например, для копирования Test.dbf в Test866.dbf, для изменения кодовой страницы в 866, используйте следующие команды:

     CopyCode imageСкопировать код
    USE TEST.DBF
    COPY TO TEST866.DBF AS 866

После завершения COPY TO, данные в новом файле будут иметь новую указанную кодовую страницу.

Для изменения метки кодовой страницы с помощью CPZERO

  • Запустите CPZERO, используя следующий синтаксис:

    DO CPZERO WITH "filename", newCodePage

    NoteЗамечание

    Некоторые символы могут некорректно транслироваться между кодовыми страницами. Кроме этого, Visual FoxPro не поддерживает трансляию некоторых кодовых страниц. Всегда проверяйте результат изменения кодовой страницы для того, чтобы убедиться в том, что ваши данные транслированы корректно.

Смотрите также