0

从 ICU 4.2.1 开始,将 UnicodeString 设置为 C 字符串的唯一直接方法是使用数据构造新的 UnicodeString,然后将所需的字符串设置为新字符串,从而分配、复制和释放数据比我想要的更多。

有没有办法将 UnicodeString 设置为(空终止/长度)C 字符串,而无需手动分配数据?

也许在更新版本的 ICU 中?(我没有检查过 4.2.1 以外的任何版本的文档,这是我发行版上的最新版本。)

看起来应该是一种setTo(const char*)方法,因为您可以使用 C 字符串构造 UnicodeString。

4

2 回答 2

1

我看不到这样做的方法,我会为 setTo 提交功能请求 - 甚至为它提供补丁!

于 2010-10-20T04:58:54.347 回答
0

ICU 字符串使用 UTF-16 编码,它是一个 UChars 序列 - 2 字节条目,因此您不能透明地将char const *带有任何内容(甚至 UTF-8)的字符串设置为 UTF-16 字符串。该操作应涉及数据转换。

于 2010-11-07T20:44:35.110 回答