Clarion 11-12

Clarion, Clarion 7

Модератор: Дед Пахом

Правила форума
При написании вопроса или обсуждении проблемы, не забывайте указывать версию Clarion который Вы используете.
А так же пользуйтесь спец. тегами при вставке исходников!!!
Аватара пользователя
finsoftrz
✯ Ветеран ✯
Сообщения: 5699
Зарегистрирован: 06 Ноябрь 2014, 12:48
Благодарил (а): 20 раз
Поблагодарили: 82 раза

Clarion 11-12

Сообщение finsoftrz »

Игорь Столяров писал(а): 12 Январь 2026, 19:27 Мне вообще не нравится, что USTRING имеет размер. Это просто очередное натягивание совы на глобус ...
Да, я тоже думаю, что это ошибочный подход. Длину у STRING понять можно, это позволяет быстро выделять память под фиксированное количество байт. В случае с юникодом на один символ может приходиться разное количество байт, поэтому строка может иметь переменную длину. Размерность ustring можно оставить в синтаксисе языка для обратной совместимости, как это сделано в sqlite. То есть, мы там можем задать myfield char(100), но на самом деле поле будет содержать столько байт, сколько туда записали.
Судя по тому, что написал RZ, он решил, что пока сойдет 2 байта на символ. Но все равно придется переходить на строки с переменной длиной, заново переписывая соответствующий код в компиляторе и рантайме.
C6/C12, ШВС, tps/btrieve.
kreator
✯ Ветеран ✯
Сообщения: 5268
Зарегистрирован: 28 Май 2009, 15:54
Откуда: Москва
Благодарил (а): 11 раз
Поблагодарили: 27 раз

Clarion 11-12

Сообщение kreator »

Дед Пахом писал(а): 12 Январь 2026, 23:40 Драйвер (в теории) должен преобразовывать строку UTF-16 в UTF-8 на лету, прозрачно для нас. То есть к примеру есть таблица

Код: Выделить всё

MyFile  FILE, DRIVER...
Record  RECORD
Id  LONG
Name USTRING
END
то ADD(MyFile) должен корректно передать юникод на сервер, в нужной кодировке.
А зачем нужны эти преобразования? И на сервер, и с сервера? Такой подход в других ЯП?
We are hard at work… for you. :)
Аватара пользователя
Игорь Столяров
Ветеран движения
Сообщения: 8387
Зарегистрирован: 07 Июль 2005, 10:19
Откуда: г. Ростов-на-ДоМу
Благодарил (а): 35 раз
Поблагодарили: 114 раз

Clarion 11-12

Сообщение Игорь Столяров »

finsoftrz писал(а): 13 Январь 2026, 19:59 Судя по тому, что написал RZ, он решил, что пока сойдет 2 байта на символ.
Я вот тоже сижу и думаю, как бы сделать ТС ПИоТ, что бы меня перестали о нём спрашивать и просто от .. стали в общем.
Все мы немного Robert Zaunere ... :D
За теми, кто отстал, не возвращаться ! 🏴‍☠️ Кодекс
Аватара пользователя
finsoftrz
✯ Ветеран ✯
Сообщения: 5699
Зарегистрирован: 06 Ноябрь 2014, 12:48
Благодарил (а): 20 раз
Поблагодарили: 82 раза

Clarion 11-12

Сообщение finsoftrz »

Игорь Столяров писал(а): 13 Январь 2026, 20:29
finsoftrz писал(а): 13 Январь 2026, 19:59 Судя по тому, что написал RZ, он решил, что пока сойдет 2 байта на символ.
Я вот тоже сижу и думаю, как бы сделать ТС ПИоТ, что бы меня перестали о нём спрашивать и просто от .. стали в общем.
Все мы немного Robert Zaunere ... :D
А Вы прошли сертификацию по ПИоТ? Тут одна птичка напела, что у них процесс занял пару недель.
C6/C12, ШВС, tps/btrieve.
Аватара пользователя
Дед Пахом
Старичок
Сообщения: 3384
Зарегистрирован: 07 Июль 2005, 16:51
Откуда: Москва, Россия
Благодарил (а): 20 раз
Поблагодарили: 56 раз
Контактная информация:

Clarion 11-12

Сообщение Дед Пахом »

kreator писал(а): 13 Январь 2026, 20:27 А зачем нужны эти преобразования? И на сервер, и с сервера?
Наверно, чтобы на сервере и клиенте данные совпадали.
С уважением, ДП
kreator
✯ Ветеран ✯
Сообщения: 5268
Зарегистрирован: 28 Май 2009, 15:54
Откуда: Москва
Благодарил (а): 11 раз
Поблагодарили: 27 раз

Clarion 11-12

Сообщение kreator »

Дед Пахом писал(а): 13 Январь 2026, 20:37
kreator писал(а): 13 Январь 2026, 20:27 А зачем нужны эти преобразования? И на сервер, и с сервера?
Наверно, чтобы на сервере и клиенте данные совпадали.
А Microsoft принципиально UTF-8 не хочет воспринимать? Все данные на клиенте должны быть в UTF-16?
В качестве примера создаю текстовый файл в UTF-8 блокнотом. Снова его открываю. Копирую содержимое. И определяю кодировку скопированного в онлайне. Показывает, что UTF-8. Т.е. блокнот может работать с UTF-8. Зачем UTF-16 на клиенте, если в БД UTF-8?
We are hard at work… for you. :)
Аватара пользователя
Дед Пахом
Старичок
Сообщения: 3384
Зарегистрирован: 07 Июль 2005, 16:51
Откуда: Москва, Россия
Благодарил (а): 20 раз
Поблагодарили: 56 раз
Контактная информация:

Clarion 11-12

Сообщение Дед Пахом »

Чё ты ко мне-то привязался? Я на грека похож? Мне лично пофигу как они юникод реализовали.
С уважением, ДП
Аватара пользователя
Игорь Столяров
Ветеран движения
Сообщения: 8387
Зарегистрирован: 07 Июль 2005, 10:19
Откуда: г. Ростов-на-ДоМу
Благодарил (а): 35 раз
Поблагодарили: 114 раз

Clarion 11-12

Сообщение Игорь Столяров »

Если интересно разобраться в вопросе, вот здесь хорошее стартовое описание.
https://www.interface.ru/home.asp?artid=6041

Интересный момент:

Код: Выделить всё

Предыдущие версии СУБД Oracle и языка Java также используют формат UCS-2 и не способны распознавать суррогатные символы.
Корпорация Oracle ввела поддержку Юникода в качестве набора символов для баз данных начиная с версии Oracle 7.
В настоящее время СУБД Oracle поддерживает два метода хранения данных в формате Юникод: 
первый - кодировка UTF-8 для символьных типов данных CHAR и VARCHAR2 и для всех имен и литералов SQL; 
второй - кодировка UTF-16 для хранения типов данных Юникод NCHAR, NVARCHAR и NCLOB. 
СУБД Oracle позволяет использовать оба метода одновременно.
Т.е. для БД необязательно делать выбор и метаться между умными и красивыми. :D
Ну и твёрдое убеждение, что SV & RZ задумали сделать хрень полную, которая убивает сам смысл UTF-16 ...
За теми, кто отстал, не возвращаться ! 🏴‍☠️ Кодекс
Аватара пользователя
finsoftrz
✯ Ветеран ✯
Сообщения: 5699
Зарегистрирован: 06 Ноябрь 2014, 12:48
Благодарил (а): 20 раз
Поблагодарили: 82 раза

Clarion 11-12

Сообщение finsoftrz »

Дед Пахом писал(а): 13 Январь 2026, 22:51 Чё ты ко мне-то привязался? Я на грека похож? Мне лично пофигу как они юникод реализовали.
Я сейчас чаем чуть не поперхнулся. :lol:
C6/C12, ШВС, tps/btrieve.
Ответить