Страница 214 из 219
Clarion 11-12
Добавлено: 09 Январь 2026, 18:40
Игорь Столяров
С адресами всё отлично. Вопрос в том, на что они указывают.
Функции WinAPI W - на нативный UTF-16 с размером символа от 2/4 байта и зоной запрещённых значений.
Новый тип данных SV USTRING на всегда 2-х байтовый UTF-16 c "бонусом упрощения":
Fixed-width benefits: Most common characters (including all Latin, Cyrillic, Greek, and CJK characters in the Basic Multilingual Plane) use exactly 2 bytes, simplifying string indexing
И вот здесь будет проблема USTRING при вызове внеших функции UTF-16.
Т.е. это такой "неконвертируемый" UTF-16. Им можно пользоваться, но только внутри приложения на Clarion 12.
P/S: А кто-нибудь вообще слышал о греческих программистах ? Как-то у RZ на это идёт нездоровый упор.
Я понимаю, что в Грециии есть всё, в т.ч. и российско-украинские релоканты ...

Clarion 11-12
Добавлено: 09 Январь 2026, 18:48
finsoftrz
В utf-16 есть понятие суррогатная пара. Это позволяет кодировать символы за пределами базовой языковой плоскости. То есть, используется 4 байта на символ. А стандартно utf-16 это 2 байта на символ, позволяет закодировать символы основных языков.
Utf-8 это кодировка, в которой 1 символ может кодироваться переменным количеством байт, от 1 до 4. Экономится место, но усложняется обработка.
Clarion 11-12
Добавлено: 09 Январь 2026, 18:54
Игорь Столяров
finsoftrz писал(а): 09 Январь 2026, 18:48
В utf-16 есть понятие суррогатная пара
Всё абсолютно верно. Это называется UTF-16. А вот как называется то, что прикостылили к Clarion в виде USTRING ?
Clarion 11-12
Добавлено: 09 Январь 2026, 20:08
Дед Пахом
Да вроде USTRING это UTF-16 как он есть. По крайней мере я так понял из блога.
Clarion 11-12
Добавлено: 10 Январь 2026, 12:38
gopstop2007
Один в уме - пишем два. Правильно понял, это касается данных, которые не хранят данные а utf (например: TPS и аналогичные), для остальных например Sqlite, размер данных равен?
Clarion 11-12
Добавлено: 11 Январь 2026, 23:17
kreator
gopstop2007 писал(а): 10 Январь 2026, 12:38
Один в уме - пишем два. Правильно понял, это касается данных, которые не хранят данные а utf (например: TPS и аналогичные), для остальных например Sqlite, размер данных равен?
Скорее всего нет. В TPS сделают поддержку ustring. В других файловых системах, понятное дело, не будет ничего. В SQL всё сложнее. Посмотрел Firebird, не поддерживается UTF16 (вот жопой чувствовал). Скорее всего UTF16 поддерживается в MS SQL (спецы могут уточнить). Поэтому я и говорю - всё очень упрощенно. В конце концов может оказаться, что TPS-никам это не нужно будет. A SQL-щики не смогут это применить.
Clarion 11-12
Добавлено: 11 Январь 2026, 23:27
kreator
kreator писал(а): 11 Январь 2026, 23:17
Посмотрел Firebird, не поддерживается UTF16 (вот жопой чувствовал).
В Postgre тоже не поддерживается. Чую, легче найти где поддерживается. Как бы не один MS SQL оказался.
Clarion 11-12
Добавлено: 12 Январь 2026, 9:51
Губин Игорь
kreator писал(а): 11 Январь 2026, 23:17
что TPS-никам это не нужно будет.
Кому-то, может быть...
Clarion 11-12
Добавлено: 12 Январь 2026, 11:30
finsoftrz
От RZ.
We haven’t coded anything specific for UTF-32, however, as you/Carl mentioned,
UTF-16 supports surrogate pairs, so in theory, it should work the same way as
Windows supports surrogate pairs of UTF-16 characters. That said, we haven’t
specifically tested for emojis or any UTF-32, so we’ll have to dig into that
and see where we come out. I wonder how many people are looking for that and
how important it is, but yeah, I think we should be able to do it.
Clarion 11-12
Добавлено: 12 Январь 2026, 11:37
Губин Игорь
finsoftrz писал(а): 12 Январь 2026, 11:30От RZ.
Смайлики в базе. Это единственное, чем нам для полного счастья недоставало...

Clarion 11-12
Добавлено: 12 Январь 2026, 12:45
Игорь Столяров
Здесь не нужно понимать буквально. Смайлик - это как пример символа из расширенного набора.
RZ & SV решили достать совсем старые наработки вроде "упрощённого" 2-х байтового USTRING и продать это в подписке C12.
Он даже не очень понимает зачем его разбудили и о чём спрашивают ...

Clarion 11-12
Добавлено: 12 Январь 2026, 12:51
Губин Игорь
Игорь Столяров писал(а): 12 Январь 2026, 12:45
Смайлик - это как пример символа из расширенного набора.
Я прекрасно понял, потому и написал.

Clarion 11-12
Добавлено: 12 Январь 2026, 15:27
finsoftrz
RZ написал, что utf-16 используется в С#/.Net, выбор обусловлен тем, чтобы обеспечивать совместимость с этим стэком.
Clarion 11-12
Добавлено: 12 Январь 2026, 15:34
Губин Игорь
finsoftrz писал(а): 12 Январь 2026, 15:27
используется в С#/.Net, выбор обусловлен тем, чтобы обеспечивать совместимость с этим стэком
Охохо... Это или закладка на будущее или оно нам нафиг надо...
Clarion 11-12
Добавлено: 12 Январь 2026, 16:10
Игорь Столяров
finsoftrz писал(а): 12 Январь 2026, 15:27
RZ написал, что utf-16 используется в С#/.Net, выбор обусловлен тем, чтобы обеспечивать совместимость с этим стэком.
Всё это уже напоминает книгу "Поднятая целина" про которую Брежнев говорил что "всем нравится, надо и мне почитать !"
Потому что в блоге, который написал RZ сказано о причинах выбора:
Native Windows support: Windows internally uses UTF-16 for all Unicode operations, making USTRING integration seamless
И это - правда. Только полноценный UTF-16, а не 2-х байтовый упрощённый вариант.