2011-03-10 186 views
0

当我试图在C++做这个代码++mac上的ASCII字符问题。无法打印黑色方块(这是CHAR(219))

cout << char(219); 

输出在我的Mac是问号? 但是,在PC上,它给了我一个黑色的方块。 有没有人有任何想法,为什么在Mac上只有128个字符,当它应该是256? 感谢您的帮助。

+0

您的帖子显示中断,可能是由于代码中的特殊字符。要发布一段代码,请将其缩进四个空格。要在普通文本中间发布代码,请在开始和结尾添加反引号(')。 – immibis 2011-03-10 03:31:19

回答

5

有没有这样的事情ASCII字符219. ASCII只能达到127.对于不同的语言和不同的操作系统,不同的字符编码以不同的方式定义字符128-255。

+0

你的'std :: locale'将决定哪些适用。您可能可以切换区域设置,但替代区域设置的列表是平台相关的。 – MSalters 2011-03-10 09:17:36

2

ASCII实际上是一个7位编码。如果你正在打印使用其他编码的字符(219):在Windows上最可能是CP 1252.在Mac上,我不知道...

0

当一个字符从一个编码集缺失,它显示了在Windows上盒(它不是字符219,这不存在)的Mac电脑显示的问题标记为钻石标志,因为设计师需要这样做。但他们都是同一件事,缺少/无效的性格。

+0

你错了。试着编译这个程序,你会看到所有不同的字符:'for(int i = 0; i <256; i ++)cout << i <<“=”<< char(i)<< endl;' – Andrey 2011-03-11 19:53:29

+0

那么在OS X中显示的问号是一个有问题的钻石,而不仅仅是一个问号吗? – Nilloc 2011-03-14 14:56:37