Re: Удобные UTF-8 строки?
От: Dj.ValDen Украина http://ua.linkedin.com/in/dvalchuk
Дата: 17.04.08 11:10
Оценка: 28 (3)
Здравствуйте, Neavirc, Вы писали:

N>Проблема в следующем: очень хочется работать с libmysqlclient, используя utf8-строки для обработки результатов SQL-запроса.


N>В ответ на SQL-запрос libmysqlclient (предварительно специальным образом пнутый) возвращает utf8-строку в обычном const char* (т.е. один символ в таком массиве может быть представлен несколькими байтами). Такую строку можно вывести в cout, можно даже создать из нее std::string, но вот удобно с такой строкой работать уже нельзя (нельзя, например, вытащить произвольный символ обычным оператором [] и сравнить с символьным литералом).


N>Поэтому я написал простенький конвертер (потом правда узнал про мега-штуку iconv, но конвертер был уже написан) из utf8 в ucs2 составляющий std::wstring. Но терзают меня смутные сомнения, что есть способ удобно работать с utf8 строками не конвертируя их в ucs2.


N>Вопросы:


N>1. Решение с конвертацией utf8 в ucs2 с целью использовать wstring (а потом обратно) — оно вообще нормальное? Мне не нравится.

N>2. Есть ли возможность используя только стандартную библиотеку удобно работать с utf8-строками?
N>3. Есть ли utf8 строки в Boost? Очень хочется поработать с boost, но в онлайн документации ничего подходящего не нашел. А повод, чтобы начать был бы хороший.


UTF8-CPP: UTF-8 with C++ in a Portable Way
С уважением Denys Valchuk

IMHO чем больше мнений тем оптимальней выбор варианта... :)
 
Подождите ...
Wait...
Пока на собственное сообщение не было ответов, его можно удалить.