Поиск простых практических примеров использования ICU на C++
Я ищу простые практические примеры C++ о том, как использовать ICU.
Домашняя страница ICU не полезна в этом отношении.
Меня не интересует, что и почему Unicode.
Несколько демонстраций не являются самодостаточными и не компилируемыми примерами ( где включены? )
Я ищу что-то вроде 'Привет, Мир:
Как открыть и прочитать файл в кодировке UTF-8
Как использовать строковые функции STL / Boost для управления кодировкой UTF-8 веревка
так далее.
2 ответов
нет специального способа прочитать файл UTF-8, Если вам не нужно обработать метку порядка байтов (BOM). Из-за того, как работает кодировка UTF-8, функции, которые читают строки ANSI, также могут читать строки UTF-8.
следующий код прочитает содержимое файла (ANSI или UTF-8) и выполнит несколько преобразований.
#include <fstream>
#include <string>
#include <unicode/unistr.h>
int main(int argc, char** argv) {
std::ifstream f("...");
std::string s;
while (std::getline(f, s)) {
// at this point s contains a line of text
// which may be ANSI or UTF-8 encoded
// convert std::string to ICU's UnicodeString
UnicodeString ucs = UnicodeString::fromUTF8(StringPiece(s.c_str()));
// convert UnicodeString to std::wstring
std::wstring ws;
for (int i = 0; i < ucs.length(); ++i)
ws += static_cast<wchar_t>(ucs[i]);
}
}
взгляните на онлайн ссылка на API.
Если вы хотите использовать ICU через Boost, см. импульс.Локаль.
ICU Boost Boost, поэтому вы найдете пример использования функций ICU для управления строками, но не Boost.
какие образцы вы смотрите? Есть образцы в дереве источников ICU, под icu / source/samples - я думаю, что образцы конвертеров там открываются и закрываются utf-8, а также icu/source/extras / uconv, который является "iconv", как приложение.
больше образцов в http://source.icu-project.org/repos/icu/icuapps/trunk/
надеюсь, что это помогает