有人可以告诉我“(char)”的Unicode等价物是什么吗?
例如,对于 ASCII,我总是使用
(char)(7)
现在我想做同样的事情,但对于 Unicode。
但
(wchar_t)(7)
没有成功,并且 wchar 不存在。
我想将这个(可能的)Unicode 字符传递给一个接受 wstring 的函数。
或者换句话说:如何以编程方式从 unicode 字符值创建 wstring(如 TAB 的 7)?
我想将此(可能的)Unicode 字符传递给接受
wstring
.
然后您需要制作 a wstring
,就像您需要string
从 a 制作 achar
如果您需要将 ASCII 字符传递给接受 a 的函数一样string
。
function(std::wstring(1, 7)); // length 1, filled with value 7
内存中的数据不以 Unicode 格式存储。Unicode 为计算机上使用的每个(嗯,很多)字符提供了一个唯一编号。
在内存中,字符被编码:将字节值映射到 Unicode 数字。
你使用什么编码?
win32 中的 wchar_t 是 16 位的,字符应以UCS-2 UTF-16编码。
大多数 *NIX 上的 wchar_t 是 32 位的,字符应该以 UTF-32 编码。
更新
呵呵,看来我老了。我的最后一部作品是在 VS2005 中,仍然有提到 UCS-2 作为内部编码,但我想即使那已经过时了。