Автор | Сообщение |
|
| |
Пост N: 233
Зарегистрирован: 03.12.08
|
|
Отправлено: 10.05.15 00:07. Заголовок: Как сохранить DBF-поле строку на чешском языке ?
Есть стрка на чешском языке . Нужно сохранить в текстовое поле .DBF-файла . DBF- открываю в "RU866" . Получается так что если напрямую записывать FIELDPUT( 1 , ALLTRIM(Stroka) ) а затем прочитать : cRead:=ALLTRIM(FIELDGET(1)) В некоторых случаях значения Stroka и cREAD не совпадают . Видимо коряво записываются (или не читаются) некоторые национальные символы алфавита DBF -файл только как CODEPAGE "RU866" !
|
|
|
Ответов - 5
[только новые]
|
|
|
| |
Пост N: 445
Зарегистрирован: 08.07.06
|
|
Отправлено: 10.05.15 00:58. Заголовок: Первое, что приходит..
Первое, что приходит в голову - сохранить строку в виде ASCII кодов символов: "056142135015032026". Считывать через SUBSTR() по три символа, преобразуя на лету в CHR(VAL(c3)) и склеивая в строку-результат. Да, при этом строка будет в три раза длиннее оригинала, но не думаю, что это существенно. Если совсем заморочиться - использовать HEX-ASCII коды, строка будет не в три, а в два раза длиннее и гарантированно читаться. Второе - попробовать простейшую Zip/Unzip функцию для нужного поля. Третье - выяснить, на каких символах "ломается" и составить таблицу замен, использовать при сохранении и восстановлении. PS: а вообще странно. Сохраненная информация в поле обязана без изменений быть прочитана. "Национальность" кодировки используется для сортировки и UPPER()/LOWER(). У меня (DBFNTX) в нескольких местах используется хранение бинарных данных в текстовых полях (картинки, битовые значения, слегка прикрытые от посторонних глаз чаты и тп) - все восстанавливается как нужно...
|
|
|
|
| |
Пост N: 236
Зарегистрирован: 03.12.08
|
|
Отправлено: 10.05.15 12:04. Заголовок: тут другое дело . Ис..
тут другое дело . Исходные строки я получаю из полученной html-странички . Тоесть разбираю её : Читаю определенную таблицу и из неё добываю информацию : полученные строки переношу в свою таблицу . Так есть слова с национальными символами ...... А их обязательно нужно записать , а затем использовать . в тексте странички .html есть такие данные : <META HTTP-EQUIV='Content-Type' CONTENT='text/html; charset=windows-1250' /> <meta http-equiv="Content-language" content="cs" /> Может это как-то использовать ?
|
|
|
|
| moderator
|
Пост N: 946
Зарегистрирован: 06.07.06
|
|
Отправлено: 10.05.15 12:13. Заголовок: А кодовая страница п..
А кодовая страница приложения ( установленная с помощью hb_cdpSelect() ) тоже RU866 ?
|
|
|
|
| |
Пост N: 237
Зарегистрирован: 03.12.08
|
|
Отправлено: 10.05.15 12:49. Заголовок: Приложение не исполь..
Приложение не использует cdpSelect .... значит тоже в CP1250 ? Всё - разобрался (вроде как) : открываю DBF с CODEPAGE "CP1250" и безо всяких перекодировок записываю и читаю правильные данные :)
|
|
|
|
| |
Пост N: 446
Зарегистрирован: 08.07.06
|
|
Отправлено: 10.05.15 23:59. Заголовок: Softlog86 пишет: DB..
Softlog86 пишет: цитата: | DBF -файл только как CODEPAGE "RU866" ! |
| Softlog86 пишет: цитата: | открываю DBF с CODEPAGE "CP1250" и безо всяких перекодировок записываю и читаю правильные данные |
| Красавчик.
|
|
|
|