Страница 216 из 216
Clarion 11-12
Добавлено: 13 Январь 2026, 19:59
finsoftrz
Игорь Столяров писал(а): 12 Январь 2026, 19:27
Мне вообще не нравится, что USTRING имеет размер. Это просто очередное натягивание совы на глобус ...
Да, я тоже думаю, что это ошибочный подход. Длину у STRING понять можно, это позволяет быстро выделять память под фиксированное количество байт. В случае с юникодом на один символ может приходиться разное количество байт, поэтому строка может иметь переменную длину. Размерность ustring можно оставить в синтаксисе языка для обратной совместимости, как это сделано в sqlite. То есть, мы там можем задать myfield char(100), но на самом деле поле будет содержать столько байт, сколько туда записали.
Судя по тому, что написал RZ, он решил, что пока сойдет 2 байта на символ. Но все равно придется переходить на строки с переменной длиной, заново переписывая соответствующий код в компиляторе и рантайме.
Clarion 11-12
Добавлено: 13 Январь 2026, 20:27
kreator
Дед Пахом писал(а): 12 Январь 2026, 23:40
Драйвер (в теории) должен преобразовывать строку UTF-16 в UTF-8 на лету, прозрачно для нас. То есть к примеру есть таблица
Код: Выделить всё
MyFile FILE, DRIVER...
Record RECORD
Id LONG
Name USTRING
END
то ADD(MyFile) должен корректно передать юникод на сервер, в нужной кодировке.
А зачем нужны эти преобразования? И на сервер, и с сервера? Такой подход в других ЯП?
Clarion 11-12
Добавлено: 13 Январь 2026, 20:29
Игорь Столяров
finsoftrz писал(а): 13 Январь 2026, 19:59
Судя по тому, что написал RZ, он решил, что пока сойдет 2 байта на символ.
Я вот тоже сижу и думаю, как бы сделать ТС ПИоТ, что бы меня перестали о нём спрашивать и просто от .. стали в общем.
Все мы немного Robert Zaunere ...

Clarion 11-12
Добавлено: 13 Январь 2026, 20:34
finsoftrz
Игорь Столяров писал(а): 13 Январь 2026, 20:29
finsoftrz писал(а): 13 Январь 2026, 19:59
Судя по тому, что написал RZ, он решил, что пока сойдет 2 байта на символ.
Я вот тоже сижу и думаю, как бы сделать ТС ПИоТ, что бы меня перестали о нём спрашивать и просто от .. стали в общем.
Все мы немного Robert Zaunere ...
А Вы прошли сертификацию по ПИоТ? Тут одна птичка напела, что у них процесс занял пару недель.
Clarion 11-12
Добавлено: 13 Январь 2026, 20:37
Дед Пахом
kreator писал(а): 13 Январь 2026, 20:27
А зачем нужны эти преобразования? И на сервер, и с сервера?
Наверно, чтобы на сервере и клиенте данные совпадали.
Clarion 11-12
Добавлено: 13 Январь 2026, 22:47
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?
Clarion 11-12
Добавлено: 13 Январь 2026, 22:51
Дед Пахом
Чё ты ко мне-то привязался? Я на грека похож? Мне лично пофигу как они юникод реализовали.
Clarion 11-12
Добавлено: 13 Январь 2026, 23:20
Игорь Столяров
Если интересно разобраться в вопросе, вот здесь хорошее стартовое описание.
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 позволяет использовать оба метода одновременно.
Т.е. для БД необязательно делать выбор и метаться между умными и красивыми.

Ну и твёрдое убеждение, что SV & RZ задумали сделать хрень полную, которая убивает сам смысл UTF-16 ...
Clarion 11-12
Добавлено: 13 Январь 2026, 23:32
finsoftrz
Дед Пахом писал(а): 13 Январь 2026, 22:51
Чё ты ко мне-то привязался? Я на грека похож? Мне лично пофигу как они юникод реализовали.
Я сейчас чаем чуть не поперхнулся.
