1

Тема: Строки и Unicode

Поначалу я думал сделать собственную реализацию преобразований кодовых страниц, чтобы быть уверенным, что всё будет работать как надо, без внезапных крокозябров. Сейчас же подумалось, что раз iconv входит в стандартный набор библиотек, можно воспользоваться ею и не дублировать сущности. Нужен заголовочный модуль, но прежде всего — обзор возможностей, какие именно функции и кодировки поддерживаются.

Свое мнение об уровне iconv пока высказывать не буду, подожду.

2

Re: Строки и Unicode

Судя по файлу "programs/develop/libraries/iconv/iconv.c" поддерживаются вот эти кодировки:

CP866
CP1251
CP1252
KOI8_RU
ISO8859_5
UTF_8
KOI8_R
ISO8859_1

библиотека экспортирует функции

iconv_t iconv_open(const char *tocode, const char *fromcode)

и

size_t iconv(iconv_t cd, const char **inbuf, size_t *inbytesleft,
char **outbuf, size_t *outbytesleft)

iconv_open
iconv

3

Re: Строки и Unicode

Насколько сложно добавить в нее поддержку UTF-16? Она нужна нам для WideString и UnicodeString.

4

Re: Строки и Unicode

Из readme.txt

Если нужны другие кодировки- просто скачай исходники gnu iconv, выбери нужные h-файлы (скажем, mac_cyrillic.h), добавь их в папку с iconv, и соответственно в iconv.с добавь эти h-файлы и указание того, что кодировка поддерживается.

5

Re: Строки и Unicode

Эти изменения примут в Колибри, или как обычно?

6

Re: Строки и Unicode

Шалом, если в дистр влезет то почему бы не добавить? smile

(Т.е. если при этом сжатый файл библиотеки iconv.obj увеличится менее чем на 8 Кб, то можно смело добавлять.)

7

Re: Строки и Unicode

Leency пишет:

то почему бы не добавить?

Пока не увижу в дистрибутиве — не поверю.

8

Re: Строки и Unicode

Freeman пишет:

Поначалу я думал сделать собственную реализацию преобразований кодовых страниц, чтобы быть уверенным, что всё будет работать как надо, без внезапных крокозябров.

есть вот такой проект Universal text conversion library (Delphi6-XE10) , MIT License от автора BrainMM.
Только не известно, насколько оно там протестировано.
Или это уже будет "из пушки по воробьям" в нашем случае?

9

Re: Строки и Unicode

По-прежнему жду UTF-16 в iconv. Без этого никаких строк не будет.

10

Re: Строки и Unicode

Решил не использовать iconv для строк. В SDK будет собственная реализация поддержки кодовых страниц и Unicode. Есть предположение, что в Колибри только в ядре Unicode нормальный, а качество остального сомнительно, поскольку никем не используется.

Попутно выяснилось, что ядро уже давно поддерживает Unicode для файловой и графической подсистем, а системный шрифт содержит символы всех языков на латинице и кириллице. При этом ни один файловый менеджер не позволяет зайти в папку с диакритикой в названии, например. Как бы не оказалось, что единственной программой, использующей Unicode-возможности Колибри, является наш обновленный "Hello, world!", инициализирующий заголовок консоли путем к программе в UTF-8, формируемым ядром.

Модуль KolibriOS будет дополнен перегруженными функциями с поддержкой строк Delphi. Тем самым потеряется его пригодность для использования в качестве библиотеки для других языков, но соответствующей активности я что-то не замечаю.