寻找有关如何使用ICU的简单实用C ++示例

| 我正在寻找有关如何使用ICU的简单实用C ++示例。 ICU主页在这方面没有帮助。 我对什么以及为什么使用Unicode不感兴趣。 几个演示不是自包含的,也不是可编译的示例(包含在哪里?) 我正在寻找类似\'Hello,World \'之类的东西: 如何打开和读取以UTF-8编码的文件 如何使用STL / Boost字符串函数来操纵UTF-8编码的字符串 等等     
已邀请:
除非需要处理字节顺序标记(BOM),否则没有特殊的方法来读取UTF-8文件。由于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参考。 如果要通过Boost使用ICU,请参见Boost.Locale。     
ICU≠Boost,因此您将找到有关如何使用ICU函数来操纵字符串而不是Boost的示例。 您在看哪些样品? ICU源代码树中有一些样本,位于icu / source / samples下-我认为转换器样本在那里打开和关闭utf-8,还有icu / source / extras / uconv,这是一个类似于“ iconv”的应用程序。 更多示例,请访问http://source.icu-project.org/repos/icu/icuapps/trunk/ 希望这可以帮助     

要回复问题请先登录注册