Здрасьте всем :)) Забавная мысля пришла мне после непродолжительной борьбы с UTF8 строками.
[Обычные текстовые колонки] Для VARCHAR мы можем явно указать длину строки - в первых двух байтах. Для CHAR мы можем косвенно длину через размер буфера. [Для массивов] VARCHAR-ы (see BUG-1588) обрабатываются как строки завершающиеся нулем. CHAR-ы размер фиксирован - размер элемента. ------- Засада с UTF8 заключается в том, что выделяя 4*N байта мы можем одно и тоже количество символов получить как в N байтах, так и во всех байтах буфера. В случае UTF8-CHAR-ов при загрузке данных с сервера мы не можем "в легкую" определить - сколько актуальных байт нам вернули. При передаче UTF8-CHAR-ов на сервер - мы не можем сказать сколько актуальных байт мы передаем. [Попрошу заметить идеи ограничивать строки нулем идут в сад] Для массивов это вообще на 100% актуально - там размером буфера нельзы варьировать ни при загрузке, ни при выгрузке - он один для всех элементов массива. ------- Ну так вот. Переходим к сути моего, так сказать, спича - тип CHAR в плане приема-передачи UTF8 данных - отстой полный. А поскольку следить за тем какие мы данные мы передаем - UTF-8 или нет - это весьма муторное занятие, обмен всех текстовых данных лучше осуществлять через VARCHAR Вот так. Коваленко Дмитрий. www.ibprovider.com

