2010-10-17 101 views
0

我讀了維基百科,但我不明白擴展ASCII是否仍然只是ASCII,並且可以在任何可以運行我的控制檯應用程序的計算機上使用? 另外,如果我的理解正確,我只能通過在VB或C#中使用其unicode代碼來編寫ASCII字符。 謝謝擴展的ASCII問題

+0

你在使用控制檯應用程序策劃什麼樣的角色?圖形字符?非英文字符? – bzlm 2010-10-17 12:30:36

+0

這在他之前的問題中得到了很好的闡述:http://stackoverflow.com/questions/3948089/console-write-display-extended-ascii-chars – 2010-10-17 12:33:43

+0

基本上是微笑和箭頭,也是舊的盒子在延伸ASCII。 – Loj 2010-10-17 12:34:17

回答

3

ASCII只涵蓋值爲0-127字符,而這些都是在所有計算機上的相同。 (Well, almost,雖然這主要是一個字形而不是語義的問題。)

擴展ASCII是用於各種單字節代碼頁的術語,它們將各種字符分配到128-255範圍內。沒有單個「擴展ASCII」字符集。

在C#和VB.NET中,所有的字符串都是Unicode的,所以默認情況下,不需要擔心這個問題 - 控制檯應用程序中是否可以移動字符是使用字體的問題,而不是任何特定的單字節代碼頁的限制。

+0

您不會編寫在EBCDIC系統上運行的軟件嗎? :P – 2010-10-17 12:29:13

+0

@Roger:不,不,我不知道。我不認爲OP會這麼做:)(另外,謝謝。) – 2010-10-17 12:35:11

+0

謝謝,如果我只使用第一個127,我可以肯定他們會很好地顯示,對不對? – Loj 2010-10-17 12:37:48

1

正如維基百科所說,ASCII只是0-127。 「擴展ASCII」是一個用詞不當的地方,應該避免,並且用來粗略地表示「基於僅使用單個字節的ASCII的其他一些字符集」(意思是不像多個字節,如UTF-8)。有時這個術語意味着該特定字符集的128-255個碼點。但是,它又是含糊不清的,你不應該指望它具有任何特定的含義。

使用術語有時被批評,因爲它可以被錯誤地解釋爲ASCII標準已被更新以包括多於128個字符或該術語明確標識單個編碼,這兩者都是不正確的。

來源:http://en.wikipedia.org/wiki/Extended_ASCII

3

正如其他人所說,真正的ASCII總是每個字節的低7位。在Unicode標準的出現(以及無處不在)之前,發佈了利用第八位的ASCII字符集的各種擴展。 Windows世界中最常見的是Windows code page 1252

如果你正在尋找使用這個編碼在.NET中,你可以這樣說:

Encoding windows1252 = Encoding.GetEncoding("windows-1252");