Прочитал тут рядом: http://permalink.gmane.org/gmane.comp.db.firebird.dotnetprovider/3883 что сервер хранит каждый символ UTF-8 как 4 байта, независимо от того какой именно это символ. Это правда? И если это так - то wire protocol тоже передает 4 байта на каждый символ в UTF-8 ???


Я сегодня пробовал понять этот пост Хэлен, но не получилось. Что-то мне подсказывает, что она либо не выспалась, либо чего-то сильного накурилась.

Если я не ошибаюсь, то проблема там только в том, что он подключается с lc_ctype=NONE к базе созданой с default charset UTF-8. Сервер с диска читает символ, потом читает, что послать по сети надо 4 байта и добавляет эти лишние пробелы. И, если я не ошибаюсь, я с Адриано это где-то год назад обсуждал и мы пришли к выводу, что это уже не баг, а фича - лучшего алгоритма который бы также удовлетворял остальным запросам не придумать. Для проверки пусть возмет вместо NONE какой-то однобайтовый чарсет, например WIN1251, там должно все работать корректно.

Роман

  • Re: UTF-8 Roman Rokytskyy

Ответить