gpt4 book ai didi

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

转载 作者:IT老高 更新时间:2023-10-28 21:42:25 26 4
gpt4 key购买 nike

我正在寻找有关如何使用 ICU 的简单实用 C++ 示例。
ICU 主页在这方面没有帮助。
我对什么和为什么 Unicode 不感兴趣。
少数演示不是自包含且不可编译的示例(包含在哪里?)
我正在寻找类似“你好,世界”的东西:
如何打开和读取以 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 reference .

如果您想通过 Boost 使用 ICU,请参阅 Boost.Locale .

关于c++ - 寻找有关如何使用 ICU 的简单实用 C++ 示例,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6010793/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com