<cctype>函数是否可以使用Unicode?</​​ cctype>

时间:2010-01-30 23:27:32

标签: c++

C ++特别版的第601页说......

In <ctype.h> and <cctype>, the standard library provides a set of useful functions for dealing with ASCII and similar character sets.

Unicode会属于这个“类似字符集”类别吗?

3 个答案:

答案 0 :(得分:0)

Unicode支持一直是该语言的一个主要难点。您必须为非ANSI设置区域设置并使用wchar_t变体。 wchar_t的确切含义因实施而异。 E.g:

setlocale(LC_CTYPE, "en_ca.UTF-8");

查看locales上的Unicode Consortium页面。

答案 1 :(得分:0)

来自<cctype>的功能实际上无法用于支持Unicode编码。

我认为关于类似字符集的注释与8位字符编码系列严格相关,例如EBCDIC

但是,请注意,将ASCII视为Unicode的子集(或变体)是正确的。如果使用Unicode的UTF-8编码,则前128个代码点与128个ASCII字符相同,前256个字符与Latin-1相同。意思是,所有ASCII都被视为有效的UTF-8。

答案 2 :(得分:0)

这实际上取决于实施。 C ++当然允许它,但不强制要求它。您需要CHAR_BIT&gt; = 20.实际上,没有实现这样做。 wchar_t和相应的<cwctype>标题通常支持Unicode。