Добрый день. Вот задался таким вопросом. Думаю, какой вариант выбрать:
1. Все строки внутри приложения хранить и обрабатывать в Glib::ustring (в случае с gtkmm, или в каком-нибудь другом строковом классе с поддержкой юникода, когда приложение пишется не под GTK) и преобразовывать в кодировку локали только тогда, когда необходимо использовать строку как имя файла, записать в файл, вывести на консоль и т. п...
2. Все строки внутри приложения хранить в кодировке локали и преобразовывать в UTF только тогда, когда требуется, например, передать строку функциям gtkmm (опять же в случае, когда приложение пишется под GTK).
Первый вариант, вроде бы, предпочтительней, т. к. позволят приложению работать с символами, которых может не оказаться в кодировке текущей локали, но: далеко не все библиотеки поддерживают юникод, и, как правило, их функции принимают std::string. Если функция библиотеки принимает std::string, то она воспринимает ее как строку в кодировке локали, а не как UTF строку, следовательно, если она выполняет какие-то действия с данными строками, то, возможно, попытка обработать UTF строку вызовет у нее ошибку.
Поделитесь, пожалуйста, своим опытом: какой вариант вы считаете лучшим, и какие проблемы он за собой потянет. Спасибо.
Ответ на:
комментарий
от const86
Ответ на:
комментарий
от Ximik
Ответ на:
комментарий
от riYu
Ответ на:
комментарий
от const86
Ответ на:
комментарий
от const86
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.
Похожие темы
- Форум Конечный автомат, велосипед (2018)
- Форум Удаление внутри строки (2021)
- Форум Изучаю Qt - возникли вопросы (2010)
- Форум кодировка имен файлов внутри tar (2003)
- Форум Поиск строки внутри заархивированных файлов (2012)
- Форум Алгоритм поиска повторений внутри строки (2019)
- Форум Как Огнелис строки в оперативке хранит? (2013)
- Форум grep char строк с кавычками внутри (2017)
- Форум Сортировка строк внутри секций конфигурационного файла. (2012)
- Форум ANTLR 4 mode выражения внутри строк (2013)