2011-03-10 57 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