Добро пожаловать в форум, Guest  >>   Войти | Регистрация | Поиск | Правила | В избранное | Подписаться
Все форумы / FoxPro, Visual FoxPro Новый топик    Ответить
 Кодовая страница  [new]
faustgreen
Member

Откуда:
Сообщений: 406
Есть таблица - table.dbf с кодовой страницей 866 (допустим в таблице хранится символьное значение - "строка"). Как изменить кодовую страницу для этой таблицы с 866 на 1251 так , чтобы значение хранимое в таблице осталось "строка", а не набор непонятных символов? Т.е. нужно изменить кодовую страницу без изменения отображения хранящихся в ней данных.
5 апр 10, 17:13    [8581476]     Ответить | Цитировать Сообщить модератору
 Re: Кодовая страница  [new]
faustgreen
Member

Откуда:
Сообщений: 406
Или хотя бы подскажите, что происходит при смене кодовой страницы ?
допустим в кодировке 1251 символу "+" соответствует код 00001111, а в 866 -00001111 - это символ "\". Получается, при смене кодовой страницы с 1251 на 866, символ "+" заменится на символ "\" ?
5 апр 10, 17:46    [8581725]     Ответить | Цитировать Сообщить модератору
 Re: Кодовая страница  [new]
проходящий.
Guest
faustgreen,
кроме смены кодовой страницы файла надо произвести перекодирование самих данных функциями типа oemtoansi().
5 апр 10, 17:52    [8581773]     Ответить | Цитировать Сообщить модератору
 Re: Кодовая страница  [new]
ВладимирМ
Member

Откуда: г. Москва
Сообщений: 7864
При изменении признака кодовой страницы НИЧЕГО не происходит. Совсем ничего.

Физически, любые символы - это числа. ASCII-коды. Т.е. физически на диске хранится вовсе не какой-то там символ, а код. А вот как именно этот код надо отображать и определяет признак кодовой страницы.

На хранение одного символа отводится 1 байт. Т.е. это число в диапазоне от 0 до 255. Кодовая страница - это некая таблица соответствия. Какой код какой картинкой (символом) отображать. Разумеется, в разных кодовых страницах один и тот же код может соответствовать как разным, так и одинаковым картинкам. Все зависит от этих самых "таблиц соответствия"

Признак кодовой страницы в заголовке таблицы - это "указатель". Он указывает системе как именно следует отображать ASCII-код. В какой "таблице соответствия" искать "картинку" для отображения этого кода.

Другими словами, если Вы меняете признак кодовой страницы в заголовке файла, то те же самые ASCII-коды уже будут отображаться по другому. Но сами ASCII-коды символов от этой операции не изменяться. Содержимое таблицы останется тем же самым, но отображаться будет по другому.
5 апр 10, 18:21    [8581957]     Ответить | Цитировать Сообщить модератору
 Re: Кодовая страница  [new]
zchvv
Member

Откуда: Челябинск
Сообщений: 241
Пример из Клепинин, Агафонова:

use table
?cpdbf   &&866
copy to table1 as 1251
use table1
?cpdbf && 1251
5 апр 10, 19:35    [8582156]     Ответить | Цитировать Сообщить модератору
 Re: Кодовая страница  [new]
zchvv
Member

Откуда: Челябинск
Сообщений: 241
Конечно же,
?cpdbf()
Да это и необязательно совсем.
5 апр 10, 21:32    [8582403]     Ответить | Цитировать Сообщить модератору
Все форумы / FoxPro, Visual FoxPro Ответить