Encoding 如何使用libICU将代码点列表编码为UTF8块?

Encoding 如何使用libICU将代码点列表编码为UTF8块?,encoding,utf-8,icu,Encoding,Utf 8,Icu,由于程序要求(快速访问单个字符),我将使用uint32\u t[]作为字符。只存储代码点,而不是UTF-32代码单元。因为我认为UTF-32代码单元和Unicode代码点不是一回事,所以我必须将它们分开 代码点取自 我需要使用libICU将这些代码点编码成UTF-8块,很难找到字符级累积编码器。我看到了一种使用的方法,但它需要双重转换。函数似乎可以完成这项工作,但只能使用UTF-32代码单元。如果我将它们与代码点一起使用,我真的不确定安全性。目前我正在寻找与next32PostInc函数相反的东

由于程序要求(快速访问单个字符),我将使用
uint32\u t[]
作为字符。只存储代码点,而不是UTF-32代码单元。因为我认为UTF-32代码单元和Unicode代码点不是一回事,所以我必须将它们分开

代码点取自


我需要使用
libICU
将这些代码点编码成UTF-8块,很难找到字符级累积编码器。我看到了一种使用的方法,但它需要双重转换。函数似乎可以完成这项工作,但只能使用UTF-32代码单元。如果我将它们与代码点一起使用,我真的不确定安全性。目前我正在寻找与
next32PostInc
函数相反的东西。我该怎么做?如果我对代码点和代码单位有什么看法,请纠正我。

当前的Unicode规范定义UTF-32代码单位等于代码点

从:

鉴于任何行业实力和国际化 支持API必须能够处理字符序列,这使得 字符串是否在内部由 UTF-16代码单元的序列,或通过一系列代码点(=UTF-32代码单元)。UTF-16和UTF-8的设计目的都是使其能够正常工作 使用子字符串很容易,因为 给定的代码点是唯一的

所以只需使用UTF-32函数