Russian Qt Forum
Ноябрь 23, 2024, 04:53 *
Добро пожаловать, Гость. Пожалуйста, войдите или зарегистрируйтесь.
Вам не пришло письмо с кодом активации?

Войти
 
  Начало   Форум  WIKI (Вики)FAQ Помощь Поиск Войти Регистрация  

Страниц: [1]   Вниз
  Печать  
Автор Тема: Как правильно преобразовать UTF-8 строки?  (Прочитано 5426 раз)
WildEagle
Гость
« : Июль 03, 2007, 17:45 »

Использую следующие функции для конвертирования строк в Uppercase и LowerCase:
Код:
 
std::string ConvertToUpper(const std::string &aValue)
{
        std::string result = aValue;
        std::transform(aValue.begin(), aValue.end(), result.begin(), (int(*)(int))std::toupper);
        return result;
}
 
std::string ConvertToLower(const std::string &aValue)
{
        std::string result = aValue;
        std::transform(aValue.begin(), aValue.end(), result.begin(), (int(*)(int))std::tolower);
        return result;
}
 

Недавно заметил что они не работают для кириличных UTF-8 строк.
Как правильно преобразовать std::string в Uppercase и LowerCase для UTF-8?
Записан
fightcat
Гость
« Ответ #1 : Сентябрь 18, 2007, 15:52 »

Ну, если я не ошибаюсь, для начала, для работы с UTF нужно использовать std::wstring...
Записан
Tonal
Гость
« Ответ #2 : Сентябрь 19, 2007, 06:22 »

Алгортим примерно такой:
1) Преобразуем строку из utf-8 в unicode
2) Надругиваемся над unicode строкой
3) переводим обратно.

Или можно, для простоты, вообще всё сразу в unicode переводить и только с ним в проге и работать. ;-)
Записан
Страниц: [1]   Вверх
  Печать  
 
Перейти в:  


Страница сгенерирована за 0.049 секунд. Запросов: 21.