(char)的C ++ unicode(或wstring?)等价物

时间:2013-04-02 11:28:27

标签: c++ unicode

有人可以告诉我“(char)”的Unicode等价物是什么吗?

对于ASCII我总是使用例如

 (char)(7)

现在我想对Unicode做同样的事情。

但是

 (wchar_t)(7)

没有用,wchar不存在。

我想将这个(可能的)Unicode字符传递给接受wstring的函数。

或换句话说: 如何以编程方式从unicode字符值创建wstring(如TAB为7)?

2 个答案:

答案 0 :(得分:3)

  

我想将这个(可能的)Unicode字符传递给接受wstring

的函数

然后你需要制作一个wstring,就像你需要将一个ASCII字符传递给接受一个函数的函数string一样。 char

string

答案 1 :(得分:0)

在内存中数据不存储在Unicode中。 Unicode为计算机上使用的每个(好的,很多)字符提供唯一的编号。

在内存中,字符被编码:将字节值映射到Unicode数字。

您使用的是哪种编码?

  • UTF-8:每个字符都映射到1,2,3,4,5或6字节序列。
  • UTF-16:每个字符都映射到2或4字节序列。
  • UCS-2:大多数字符到2字节序列的不完整映射。
  • UTF-32:每个字符都映射到一个4字节序列。

win32中的wchar_t是16位,字符应该在 UCS-2 UTF-16中编码。

wchar_t on most * NIXes是32位,字符应该用UTF-32编码。

<强>更新

嗯,看起来我已经老了。我的最后一项工作是在VS2005中,并且仍然引用了UCS-2作为内部编码,但我想即使这已经过时了。