【发布时间】:2012-07-21 03:35:48
【问题描述】:
我搜索了很多,但找不到任何东西:
unsigned int unicodeChar = 0x5e9;
unsigned int utf8Char;
uni2utf8(unicodeChar, utf8Char);
assert(utf8Char == 0xd7a9);
是否有实现类似于 uni2utf8 的库(最好是 boost)?
【问题讨论】:
-
对于新的 c++11 unicode 字符串文字,请参阅 stackoverflow.com/questions/6796157/…
-
你所要求的没有意义,也无法工作。没有 UTF-8 字符这样的东西。有 UTF-8 代码单元,它们是 8 位值,正确解码后形成 Unicode 代码点。但是 UTF-8 代码单元不存储在 32 位大小的
unsigned ints 中。每个代码单元大小为 8 位;因此,在 UTF-8 中存储 Unicode 代码点的方法是作为代码单元序列。 字符串,不是整数。 -
1. UTF8 是 unicode 2。使用 nowide。
-
utf8 不是 Unicode,utf8 是一种表示数字的方法。另一方面,unicode 是符号到数字之间的映射。抽象数字,而不是它们的表示。