@vipermagi
Вечный ученик.

Какие возникают проблемы при работе с Unicode и какие им есть решения на C++?

Пытаюсь комплексно обозреть для себя сферу работы с текстом в целом и с поправкой на Unicode и C++.
Кроссплатформенность тоже хочу учесть.

Вопрос 1: какие существуют известные задачи (если можно полный список :) ) при работе с текстом вообще, для которых в Unicode нужно особое решение?
Вопрос 2: какие есть средства для работы с этим всем в C++ по умолчанию и на сколько они дотягивают / не дотягивают до идеала?
Вопрос 3: дополнительные библиотеки насколько могут оказаться не обходимыми?

На текущий момент определил для себя вот такие задачи:
  • Итератор для перемещения по визуальным знакоместам либо по codepoint'ам
  • Определение размера (байт) подстроки и операции вырезания, вставки и т.п.
  • Поиск и regex
  • Перекодировка между UTF-* и другими кодировками
  • Чтение / запись как содержимого файлов так и путей файловых систем


Может быть ещё есть какие-нибудь требующие подхода в Unicode?

Первая мысль - это взять locale.h, regex.h и std::string, и этого хватит. Но думаю эта мысль далека от реальности, вот только не знаю на сколько далека.

Вторая мысль - это не париться и сразу брать в любой проект ICU. Но это жЫрнота и как-то жаба давит.
  • Вопрос задан
  • 436 просмотров
Пригласить эксперта
Ответы на вопрос 2
@sitev_ru
sitev.ru - мой блог ...
Посмотри тут https://github.com/sitev/cjCore/blob/master/src/ob... мой класс String. Это UTF-32 строка. Есть свои плюсы и минусы. Можем объединить усилия, написать свой, более правильный String!
Ответ написан
Adamos
@Adamos
UTF8-CPP - использовал, когда приходилось писать без использования кроссплатформенных фреймворков. Основные проблемы решает.
Главное - привести все входящие строки к utf-8 и не забыть их конвертировать в выходную кодировку, если это требуется. А вся обработка - только в utf-8, готовых решений для этого более чем достаточно.
Ответ написан
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы