Справочник функций

Ваш аккаунт

Войти через: 
Забыли пароль?
Регистрация
Информацию о новых материалах можно получать и без регистрации:

Почтовая рассылка

Подписчиков: -1
Последний выпуск: 19.06.2015

Кодировка

26K
01 декабря 2009 года
Упырь
16 / / 23.12.2007
Здравствуйте. Есть проблема следующего характера, работаю с файлом, но при этом на входе в программу файлы могут иметь различные кодировки (CP1251, KOI8-R), мне же после открытия файла необходимо осуществлять поиск подстроки в прочитанной строке, которая соответственно по разному воспринимается в зависимости от кодировки. Вопрос: есть ли в С++ какие-либо методы конвертирования строк из одной кодировки в другую, а также метод определения кодировки файла. Если нет, то правильно и оптимально ли я сделаю если буду искать по ASCII кодам???? И будет ли это как то влиять на кроссплатформенность приложения. Спасибо.
288
01 декабря 2009 года
nikitozz
1.2K / / 09.03.2007
Простые примеры есть здесь
http://www.delphisources.ru/pages/faq/base/uni_convert.html
http://www.hostforum.ru/showthread.php?t=8264
14
01 декабря 2009 года
Phodopus
3.3K / / 19.06.2008
Для конвертирования я бы предложил весьма распространенный и достаточно кроссплатформенный iconv()
242
01 декабря 2009 года
Оlga
2.2K / / 04.02.2006
Упырь, ты в какой среде работаешь? Если в .NET, то там в С++ есть строки работающие с юникодом System::String, проблем быть не должно. Покрайней мере попробовать можно.
43K
01 декабря 2009 года
loki231
76 / / 27.09.2009
А ещё в стандартной библиотеке C есть wchar_t и куча функций

mbsnrtowcs (3) - convert a multibyte string to a wide-character string
mbsrtowcs (3) - convert a multibyte string to a wide-character string
mbstowcs (3) - convert a multibyte string to a wide-character string
wcscasecmp (3) - compare two wide-character strings, ignoring case
wcscat (3) - concatenate two wide-character strings
wcschr (3) - search a wide character in a wide-character string
wcscmp (3) - compare two wide-character strings
wcscpy (3) - copy a wide-character string
wcscspn (3) - search a wide-character string for any of a set of wid...
wcsdup (3) - duplicate a wide-character string
wcslen (3) - determine the length of a wide-character string
wcsncasecmp (3) - compare two fixed-size wide-character strings, ignorin...
wcsncat (3) - concatenate two wide-character strings
wcsncmp (3) - compare two fixed-size wide-character strings
wcsncpy (3) - copy a fixed-size string of wide characters
wcsnlen (3) - determine the length of a fixed-size wide-character st...
wcsnrtombs (3) - convert a wide-character string to a multibyte string
wcspbrk (3) - search a wide-character string for any of a set of wid...
wcsrchr (3) - search a wide character in a wide-character string
wcsrtombs (3) - convert a wide-character string to a multibyte string
wcsspn (3) - advance in a wide-character string, skipping any of a ...
wcsstr (3) - locate a substring in a wide-character string
wcstoimax (3) - convert wide-character string to integer
wcstok (3) - split wide-character string into tokens
wcstombs (3) - convert a wide-character string to a multibyte string
wcstoumax (3) - convert wide-character string to integer
wcswidth (3) - determine columns needed for a fixed-size wide-charact...

А для C++ -- std::wstring и локали (заголовочный файл locale).
288
01 декабря 2009 года
nikitozz
1.2K / / 09.03.2007
Цитата: loki231
А ещё в стандартной библиотеке C есть wchar_t и куча функций



Только по-моему автор работает все же только с однобайтовыми кодировками. :)

43K
02 декабря 2009 года
loki231
76 / / 27.09.2009
Если программа будет работать в системной локали UTF-8 и при этом манипулировать отдельными не-ASCII символами - то однозначно перевод в wchar_t.
26K
02 декабря 2009 года
Упырь
16 / / 23.12.2007
пишу на С++, с использованием QtCreator, компилятор MinGW 3.2 кажется, если это конечно важно. Советы в свободное время попробую использовать, там отпишусь, спасибо.
26K
02 декабря 2009 года
Упырь
16 / / 23.12.2007
по поводу и iconv я в курсе, как раз им пока проблему и решаю, только что ты имеешь ввиду. Использовать iconv как еще одну программу или можешь предложить его исходники????
43K
02 декабря 2009 года
loki231
76 / / 27.09.2009
Раз ты используешь Qt, то проблем вообще никаких. В Qt отличная поддержка юникода. Используй QTextStream, QString и QChar.

PS.И ещё QTextCodec, конечно.
PPS. iconv это не только программа, но ещё и функция. man 3 iconv
Реклама на сайте | Обмен ссылками | Ссылки | Экспорт (RSS) | Контакты
Добавить статью | Добавить исходник | Добавить хостинг-провайдера | Добавить сайт в каталог