c++ - UnicodeString 到 char* (UTF-8)

标签 c++ windows utf-8 internationalization icu

我在 OS X 上使用 C++ 中的 ICU 库。我所有的字符串都是 UnicodeString,但我需要使用 fopen、fread 等系统调用。这些函数将 const char* 或 char* 作为参数。我读过 OS X 内部支持 UTF-8,所以我需要做的就是将我的 UnicodeString 转换为 UTF-8,但我不知道该怎么做。

UnicodeString 有一个 toUTF8() 成员函数,但它返回一个 ByteSink。我还找到了这些示例:http://source.icu-project.org/repos/icu/icu/trunk/source/samples/ucnv/convsamp.cpp并阅读有关使用转换器的信息,但我仍然感到困惑。任何帮助将非常感激。

最佳答案

调用 UnicodeString::extract(...) 将其提取到一个 char* 中,为转换器传递 NULL 以获取默认转换器(在您的操作系统将使用的字符集中) .

关于c++ - UnicodeString 到 char* (UTF-8),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3150581/

相关文章:

c++ - 为什么 boost::property_tree::read_xml 抛出读取有效的 Office Open XML?

c++ - UTF-8 字符的预处理器粘贴在 g++ 中执行 'not give a valid preprocessing token'

windows - Vista 及更高版本上的系统范围键盘钩子(Hook)

mysql - 解决 perl DBD::mysql UTF-8 错误

utf-8 - 如何在十六进制 NCR 和 UTF-8 代码单元之间进行转换?

c++ - 静态常量类成员作为成员数组的初始值设定项

c++ - 未调用模板化函数

c++ - 如何在我的 C++ 输出中添加 ಠ 符号

windows - 带有 Clang 5.0 和 MinGW 的 OpenMP

c++ - QProcess::startDetached() 不显示控制台窗口