Реклама на сайте Advertise with us

C++, utf8 string to wstring

Расширенный поиск по форуму
 
Новая тема Новая тема   
Автор
Поиск в теме:

Добрых Дел Мастер

С нами с 03.05.08
Сообщения: 3143
Рейтинг: 1227

Ссылка на сообщениеДобавлено: 06/08/10 в 15:56       Ответить с цитатойцитата 

OC: Ubuntu 10.04
locale: ru_RU.utf8

Нужно привести параметр командной строки к верхнему регистру. Параметр может быть кириллическим и передается в кодировке текущей локали.

Цитата:

#include <iostream>
#include <string>
#include <algorithm>
using namespace std;

int main(int argc, char** argv)
{
std::locale::global(std::locale(""));
// 1 case
string s = argv[1];
wstring w(s.begin(), s.end());
wcout << w << endl;
transform(w.begin(), w.end(), w.begin(), (int(*)(int)) towupper);
wcout << w << endl;

// 2 case
w = L"тест";
wcout << w << endl;
transform(w.begin(), w.end(), w.begin(), (int(*)(int)) towupper);
wcout << w << endl;

return 0;
}


В первом случае (когда берется параметр командной строки) в консоль выводятся знаки вопроса, во втором случае (когда берется зашитый в код параметр) все отлично.

Цитата:

pixx@pixx:~$ locale
LANG=ru_RU.utf8
LANGUAGE=en
LC_CTYPE="ru_RU.utf8"
LC_NUMERIC="ru_RU.utf8"
LC_TIME="ru_RU.utf8"
LC_COLLATE="ru_RU.utf8"
LC_MONETARY="ru_RU.utf8"
LC_MESSAGES="ru_RU.utf8"
LC_PAPER="ru_RU.utf8"
LC_NAME="ru_RU.utf8"
LC_ADDRESS="ru_RU.utf8"
LC_TELEPHONE="ru_RU.utf8"
LC_MEASUREMENT="ru_RU.utf8"
LC_IDENTIFICATION="ru_RU.utf8"
LC_ALL=

pixx@pixx:~$ Workspace/test/Debug/test тест
????????
????????
тест
ТЕСТ


Вопрос: как сделать так, чтобы любую UTF-8 строку, полученную из параметра или файловой системы через readdir можно было привести в верхний регистр?

Кроме использования фреймворков типа Qt со встроенными средствами поддержки UTF8 рабочих решений не нашел...

0
 

c++,php кодинг

С нами с 22.10.05
Сообщения: 1098
Рейтинг: 558

Ссылка на сообщениеДобавлено: 06/08/10 в 19:00       Ответить с цитатойцитата 

smail101.gif , как разберешься отпиши.

0
 
Новая тема Новая тема   

Текстовая реклама в форме ответа
Заголовок и до четырех строчек текста
Длина текста до 350 символов
Купить рекламу в этом месте!


Перейти:  



Спонсор раздела Стань спонсором этого раздела!

Реклама на сайте Advertise with us

Опросы

Рецепт новогоднего блюда 2022



Обсудите на форуме обсудить (11)
все опросы »