ASCII

ASCII
USASCII code chart.png
1972年以前的打印機手冊中的ASCII圖表
Mime / Iana美國
別名ISO-IR-006,[1]ANSI_X3.4-1968,ANSI_X3.4-1986,ISO_646.IRV:1991,ISO646-US,US,IBM367,CP367[2]
語言英語(用於,不支持所有貸款),rotokasInterlingua我願意(和X-Sampa
分類ISO/IEC 646系列
擴展
先於ITA 2fieldata
繼之後ISO/IEC 8859ISO/IEC 10646Unicode

ASCII/ˈæsk一世/屁股-Kee),[3]:6縮寫美國標准信息交換碼,是字符編碼電子通信的標準。ASCII代碼代表計算機中的文本,電信設備和其他設備。由於計算機系統發明時的技術局限性,ASCII只有128代碼點,其中只有95個可打印字符,嚴重限制了其範圍。所有現代計算機系統改為使用Unicode,它具有數百萬個代碼點,但其中的前128個與ASCII集相同。

互聯網分配的數字授權(IANA)更喜歡名稱美國對於此字符編碼。[2]

ASCII是IEEE里程碑.

概述

ASCII是由電報代碼。它的第一個商業用途是七少量電信貝爾數據服務推廣的代碼。[什麼時候?]ASCII標準的工作始於1961年5月,在美國標準協會(ASA)的第一次會議上(現在是美國國家標準學院或ANSI)X3.2小組委員會。該標準的第一版發表於1963年,[4][5]在1967年進行了重大修訂,[6][7]並經歷了1986年期間的最新更新。[8]與較早的電報代碼相比,提出的鐘聲代碼和ASCII都均已訂購,以更方便地分類(即,字母表)列表的列表和添加的功能,用於電信器以外的其他設備。

1969年描述了ASCII格式進行網絡交換的使用。[9]該文件在2015年正式提升為互聯網標準。[10]

最初基於(現代)英語字母,ASCII編碼128指定人物如上圖所示,成七位整數。[11]編碼字符的九十五是可打印的:這些包括數字09, 小寫字母一個z, 大寫字母一個z, 和標點符號符號。此外,原始ASCII規範包括33個非印刷控制代碼起源於電視機機器;其中大多數已經過時了,[12]雖然一些仍然常用,例如馬車返回線飼料, 和標籤代碼。

例如,小寫i將在ASCII編碼中表示二進制1101001 =十六進制69(i是第九個字母)=小數105。

儘管是美國標準,但ASCII沒有代碼點百分點(¢)。它也不支持英語用語標記恢復辣椒, 或者專有名詞帶有圖形標記,例如碧昂斯.

歷史

ASCII(1963)。控製圖片顯示等效控件存在的位置,或者顯示灰點。

《美國信息交易標準守則》(ASCII)是根據美國標準協會(ASA)委員會(ASA)的主持,由其X3.2(後來的X3L2)小組委員會制定的,後來由該小組委員會的X3制定。2.4工作組(現在煽動)。ASA後來成為美國標準學院(USASI),[3]:211並最終成為美國國家標準學院(ANSI)。

隨著其他特殊字符和控制代碼的填充,ASCII出版為ASA X3.4-1963,[5][13]留下28個代碼位置,沒有任何分配的含義,保留用於將來的標準化和一個未分配的控制代碼。[3]:66,245當時有一些爭論是否應該有更多的控製字符而不是小寫字母。[3]:435猶豫不決並沒有持續很長時間:在1963年5月,CCITT在新電報字母上的工作聚會提議將小寫字符分配給棍子[a][14]6和7,[15]國際標準化組織TC 97 SC 2在10月份投票通過將變更納入其標準草案。[16]X3.2.4任務小組在1963年5月的會議上投票贊成對ASCII的變更。[17]找到小寫字母棍子[a][14]6和7導致字符與上案的位模式不同,這簡化了不區分大小寫角色匹配以及鍵盤和打印機的構建。

X3委員會進行了其他更改,包括其他新角色(支撐垂直條人物),[18]重命名一些控製字符(SOM成為標題(SOH)的開始),然後移動或刪除其他角色(RU被刪除)。[3]:247–248隨後將ASCII更新為USA X3.4-1967,[6][19]然後是USA X3.4-1968,ANSI X3.4-1977,最後是ANSI X3.4-1986。[8][20]

ASCII標準的修訂:

在X3.15標準中,X3委員會還談到了應如何傳輸ASCII(最不重要的位第一的),[3]:249–253[26]以及如何將其記錄在穿孔膠帶上。他們提出了一個9軌磁帶的標準,並試圖處理一些打孔卡格式。

設計注意事項

位寬度

X3.2小組委員會根據早期的Teprinter編碼系統設計了ASCII。像其他字符編碼,ASCII指定數字位模式和特點符號(即素數控製字符)。這允許數字的彼此交流並處理,存儲和傳達面向角色的信息(例如書面語言)的設備。在開發ASCII之前,使用的編碼包括26字母角色,10數值數字,從11到25個特殊圖形符號。包括所有這些,並控製字符與ComitéConsultatifInternationalTéléphoniqueettélégraphique(CCITT)國際電報字母2號(ITA2)1924年的標準,[27][28]fieldata(1956年),早期EBCDIC(1963年),ASCII需要64多個代碼。

ITA2又基於5位電報代碼ÉmileBaudot於1870年發明,並於1874年獲得專利。[28]

委員會辯論了轉移功能(例如ITA2),這將允許超過64個代碼代表六位代碼。在移動的代碼中,一些字符代碼確定了以下字符代碼之間的選項之間的選擇。它允許緊湊的編碼,但對數據傳輸,作為傳輸移位代碼的錯誤,通常會使變速箱不可讀。標準委員會決定不轉移,因此ASCII至少需要七位法規。[3]:215§13.6,236§4

委員會考慮了八位法規,因為八位(八位字)將允許兩個四位圖案有效地編碼兩個數字二進制十進制。但是,當七個足夠的時間時,所有數據傳輸都需要發送八個位。委員會投票通過使用七位代碼來最大程度地減少與數據傳輸相關的成本。由於當時的穿孔膠帶可以在一個位置記錄八位,因此也允許奇偶校驗為了錯誤檢查如果需要。[3]:217§c,236§5八位沒有使用奇偶校驗檢查的機器(以八位鐘作為本機數據類型)通常將第八位設置為0。[29]

內部組織

該代碼本身是圖案化的,因此大多數控制代碼都在一起,並且所有圖形代碼都在一起,以便於識別。前兩個所謂的ASCII棍棒[a][14](32個位置)保留給對照字符。[3]:220,236 8,9)“空間”角色必須在圖形之前來製作排序更容易,因此成為位置20十六進制[3]:237§10出於同樣的原因,在數字之前放置了許多通常用作分離器的特殊跡象。委員會認為支持很重要大寫64個字母字母並選擇對ASCII進行模式,因此可以輕鬆地將其簡化為可用的64個字符集圖形代碼,[3]:228,237§14就像在12月六位代碼(1963)。小寫因此,字母沒有與大寫速度交織在一起。為了保留用於小寫字母和其他圖形的選項,在字母之前安排了特殊和數字代碼一個被放置在位置41十六進制符合相應的英國標準的草稿。[3]:238§18數字0–9的前綴為011,但其餘4位對應於它們在二進制中的各自值,與二進制十進制直截了當。

將許多非α數字字符定位為與打字機上移動的位置相對應。一個重要的微妙是這些是基於機械的打字機,不是電的打字機。[30]機械打字機遵循事實上的標準雷明頓2號(1878年),第一個帶有移位鍵的打字機,以及變化的值23456789-“#$%_&'() - 早期打字機省略了01, 使用o(大寫字母o) 和l(小寫字母L),但是1!0)一旦0和1變得普遍,對成為標準。因此,在ASCII中!”#$%被放在第二條棍子中,[a][14]位置1-5,對應於相鄰棍子中的數字1-5。[a][14]括號不能對應於90但是,因為這個地方對應於0是由太空角色捕獲的。這是通過刪除來容納的_(下劃線)6並移動其餘字符,這與許多括號相對應89。與打字機的這種差異導致位鍵盤,特別是電視型33,它使用對應於ASCII的左移佈局,與傳統的機械打字機不同。

電動打字機,尤其是IBM Selectric(1961年),使用了某種不同的佈局,該佈局已成為計算機上的事實上的標準 - 遵循IBM PC(1981),尤其是(1984年) - 因此,現代鍵盤上符號的變速值並不像較早鍵盤那樣與ASCII表相對應。這/?對也可以追溯到2號,,<。>對在某些鍵盤上使用了(包括第二號在內的其他鍵盤都沒有移動(逗號)或.(全停止),因此可以在大寫中使用它們而不會取消變形)。但是,ASCII拆分;::對(可追溯至2號)和重新排列的數學符號(通常的約定,通常 - * =+) 至:*;+ - =.

一些當時的常見打字機字符不包括在內,尤其是½¼¢, 儘管^`〜被包括作為國際用途的變量,以及< >用於數學使用,以及簡單的線字符\ |(除了普通/)。這@歐洲大陸沒有使用符號,委員會預計將被重音所取代一個在法國的變化中,所以@被放置在40十六進制,就在字母A之前。[3]:243

對於數據傳輸而言,控制代碼是消息的開始(SOM),地址結束(EOA),消息結束(EOM),傳輸結束(eot),“你是誰?”(WRU),“是嗎?”(RU),保留的設備控制(DC0),同步空閒(同步)和確認(ACK)。這些定位是為了最大化錘距在它們的位模式之間。[3]:243–245

角色順序

ASCII代碼順序也稱為週期性命令。[31]整理有時以此順序進行數據而不是“標準”字母順序(整理序列)。ASCII順序的主要偏差是:

  • 所有大寫字母都出現在小寫字母之前。例如,“ z”先於“ a”
  • 數字和許多標點符號出現在信件之前

中間訂單在比較ASCII值之前將大寫字母轉換為小寫。

角色群

控製字符

ASCII保留控製字符的前32個代碼(數字0-31個十進制):最初旨在不表示可打印信息,而是用於控制設備(例如打印機)利用ASCII或提供元信息關於數據流,例如存儲在磁帶上的數據流。

例如,字符10代表“線饋電”函數(這會導致打印機推進其紙張),而字符8表示“ backspace”。RFC 2822指的是不包括運輸返回,線飼料或空白作為非空格控製字符。[32]除了開處開出基本線條格式的控製字符外,ASCII沒有定義任何描述文檔中文本的結構或外觀的機制。其他方案,例如標記語言,地址頁面和文檔佈局和格式。

原始的ASCII標準僅對每個控製字符使用簡短的描述性短語。這引起的歧義有時是故意的,例如,在終端鏈接上使用字符的使用略有不同數據流,有時甚至是偶然的,例如“刪除”的含義。

影響這些字符解釋的最具影響力的單個設備是電視型33ASR,是一個帶有可用的印刷終端紙帶閱讀器/打孔選項。紙膠帶是一種非常流行的長期程序存儲媒介,直到1980年代,成本較低,在某些方面比磁帶較少脆弱。特別是,代碼17(Control-Q,DC1,也稱為XON)的電視33機器分配機器分配,19(Control-S,DC3,也稱為XOFF)和127(刪除)成為事實上的標準。模型33也值得注意的是,對Control-G(代碼7,BEL,意思是聽到操作員)的描述字面意思,因為該單元包含一個實際的鈴鐺,當它收到BEL字符時它會響起。因為O鍵的主鍵也顯示了一個左箭頭符號(來自ASCIII-1963,它具有此字符而不是下劃線),許多早期的時刻系統也採用了對代碼15(控制-O,轉移)解釋為“刪除先前字符”的非規則使用,但最終被忽略了。

當配備了自動紙帶讀取器的電視連接33 ASR收到了Control-S(Xoff,縮寫用於傳輸)時,這會導致磁帶讀取器停止;接收Control-Q(XON,發送)導致磁帶讀取器恢復。這個所謂的流量控制技術被幾個早期的計算機操作系統採用,作為“握手”信號,警告發件人以停止傳輸,因為即將到來緩衝區溢出;直到今天,在許多系統中,它一直是手動輸出控制技術。在某些系統上,Control-S保留其含義,但Control-Q被第二個控制S替換為恢復輸出。

33 ASR還可以配置為使用Control-R(DC2)和Control-T(DC4)啟動和停止磁帶拳。在配備此功能的某些單元上,字母上方的鍵帽上的相應控製字符字母是磁帶和膠帶分別。[33]

刪除vs backspace

電視機無法向後移動其Typehead,因此其鍵盤上沒有發送BS(Backspace)的鍵。相反,有一個標記的鑰匙抹去這發送了代碼127(del)。此鑰匙的目的是在手動輸入紙帶中刪除錯誤:操作員必須按下磁帶上的按鈕將其向後向後,然後鍵入Rubout,然後用拳打所有孔,並用一個角色代替了錯誤被打算被忽略。[34]電視通常與較不昂貴的計算機一起使用數字設備公司(DEC);這些系統必須使用可用的鍵,因此DEL代碼被分配以刪除先前的字符。[35][36]因此,DEC視頻終端(默認情況下)發送了標記為“ backspace”的鍵的DEL代碼,而單獨的鍵標記為“刪除”逃脫序列;許多其他競爭終端為BackSpace密鑰發送了BS代碼。

UNIX終端驅動程序只能使用一個代碼刪除上一個字符,可以將其設置為BS或者del,但不是兩者,導致歧義的反复情況,在這種情況下,用戶必鬚根據他們使用的終端決定來決定貝殼允許線路編輯,例如kshbash, 和ZSH,都理解兩者)。沒有鍵發送BS代碼允許控制+H用於其他目的的假設,例如在gnu emacs.[37]

逃脫

還有更多的控制代碼分配了與原始含義完全不同的含義。例如,“逃脫”字符(ESC,代碼27)最初旨在允許將其他控製字符作為文字發送,而不是調用其含義,即“逃生序列”。這是URL編碼中遇到的“逃生”的含義,C語言字符串和其他某些字符具有保留含義的系統。隨著時間的流逝,這種解釋已被選擇,並最終改變了。

在現代用法中,一條ESC發送了終端通常表示命令序列的開始,通常以所謂的“ANSI逃生代碼“(或更正確地,一個”控制序列介紹器“)來自ECMA-48(1972)及其繼任者,從ESC開始,然後是“ [(左支架)角色)。相反,ESC發送了該終端通常被用作帶外字符用於終止操作或特殊模式,例如Tecovi文本編輯器。在圖形用戶界面(GUI)和窗口系統,ESC通常會導致應用程序中止其當前操作或出口(終止)完全。

行結束

許多控製字符的固有歧義,結合其歷史用法,在系統之間傳輸“純文本”文件時會產生問題。最好的例子是新隊各種問題操作系統。電視機要求用“托架返回”(將打印頭移至生產線的開頭)和“線饋電”(在不移動打印頭的情況下推進一條線路)。“馬車返回”這個名字來自於手冊上的事實打字機握著紙的馬車在撞擊色帶的型鍵時移動。必須將整個馬車推到右側(返回),以便將紙放在下一行。

DEC操作系統(OS/8RT-11RSX-11RST頂部10等等。)使用兩個字符來標記線路的末端,以便控制台設備(最初是電視機機器)可以工作。到所謂的“玻璃TTY”(後來稱為CRT或“ Dumb Terminals”)出現時,大會已經很好地確定了向後兼容需要繼續遵循它。什麼時候加里·基爾德爾(Gary Kildall)創建CP/m,他的靈感來自DEC的RT-11操作系統中使用的一些命令行接口約定。

直到1981年引入PC DOS為止IBM在這方面沒有影響,因為他們的1970年代操作系統使用了EBCDIC編碼,而不是ASCII,並且他們面向打孔卡輸入和線條打印機輸出,“馬車返回”的概念毫無意義。IBM的PC DOS(也被銷售為MS-DOS由Microsoft)通過基於CP/M的鬆散而繼承了公約[38]視窗反過來從MS-DOS繼承了它。

需要兩個字符來標記一條行的末尾,引入了不必要的複雜性和歧義性,即當自行遇到時如何解釋每個字符。為了簡化事情,純文本數據流,包括文件,ON多技術單獨使用的線飼料(LF)作為線路終結器。[39]:357Unix類似於Unix系統和Amiga系統,從多方面採用了這一公約。另一方面,原始Macintosh OS蘋果dos, 和Prodos單獨使用二手車返回(CR)作為線路終結者;但是,由於蘋果現在已經用基於UNIX的過時操作系統替換了這些過時的操作系統蘋果系統操作系統,他們現在也使用線饋電(LF)。廣播棚TRS-80還使用孤獨的CR終止線路。

連接到Arpanet包括運行操作系統的機器,例如TOPS-10和Tenex使用CR-LF線結尾;運行操作系統(例如使用LF線路結尾)的機器;和運行操作系統的機器,例如OS/360這表示線作為角色數,然後是該行的字符,並且使用了EBCDIC而不是ASCII編碼。這telnet協議定義了ASCII“網絡虛擬終端”(NVT),因此可以通過通過網絡傳輸標准文本格式來支持具有不同線路結束約定和字符集的主機之間的連接。Telnet使用ASCII以及CR-LF線路結尾,使用其他約定的軟件將在本地約定和NVT之間轉換。[40]文件傳輸協議採用Telnet協議,包括使用網絡虛擬終端,以在傳輸命令和在默認的ASCII模式下傳輸數據時使用。[41][42]這增加了這些協議的實現以及其他網絡協議,例如用於電子郵件和萬維網的其他網絡協議,在不使用NVT的CR-LF線路結束的系統上。[43][44]

文件的結尾/流

PDP-6監視器,[35]及其PDP-10繼任者TOPS-10,[36]使用的控制-Z(sub)作為終端輸入的文件終止指示。一些操作系統(例如CP/M)僅在磁盤塊的單位中跟踪文件長度,並使用Control-Z標記文件中實際文本的末尾。[45]由於這些原因,eof或文件結束,被通話和傳統用作三個字母的縮寫用於控制-Z而不是替代。文本末端代碼(etx),也稱為控制-C,由於多種原因是不合適的,而使用z用作控制代碼結束文件的情況類似於其在字母末端的位置,並且非常方便瘋子輔助。歷史上常見且仍然普遍存在的慣例使用ETX代碼慣例通過輸入數據流(通常是從鍵盤)中斷和停止程序。

在C圖書館和Unix公約中空字符用於終止文本字符串;這樣的零終止的字符串可以在縮寫中稱為asciz或asciiz,在這裡z代表“零”。

控制代碼圖

二進制十月十二月十六進制縮寫Unicode控製圖片[b]陳述法[C]C逃脫序列[D]名字(1967)
196319651967
000 0000000000無效的nul^@\0無效的
000 0001001101SOMSOH^a開始
000 0010002202EOAstx^b開始文字
000 0011003303EOMetx^c文字的結尾
000 0100004404eot^d傳輸結束
000 0101005505wruENQ^e詢問
000 0110006606ruACK^f致謝
000 0111007707貝爾^g\一個
000 1000010808FE0BS^h\ bbackspace[E][F]
000 1001011909ht/skH T^i\ t水平標籤[G]
000 1010012100a如果^J\ n線飼料
000 1011013110bVTABVT^k\ v垂直選項卡
000 1100014120cff^l\F形式飼料
000 1101015130dcr^m\ r馬車返回[H]
000 1110016140E所以^n移出
000 1111017150fsi^o轉移
001 00000201610DC0DLE^p數據鏈路逃脫
001 00010211711DC1^q設備控制1(經常Xon
001 00100221812DC2^r設備控制2
001 00110231913DC3^s設備控制3(經常xoff
001 01000242014DC4^t設備控制4
001 01010252115納克^u負面的承認
001 01100262216同步syn^v同步閒置
001 01110272317萊姆etb^w傳輸末端
001 10000302418S0能夠^x取消
001 10010312519S1Em^y培養基的末端
001 1010032261aS2SS^z代替
001 1011033271BS3ESC鍵^[\ e[i]逃脫[J]
001 1100034281CS4FS^\文件分離器
001 1101035291dS5GS^]組分離器
001 1110036301eS6盧比^^[k]記錄分離器
001 1111037311FS7我們^_單位分離器
111 11111771277fdel^?刪除[L][F]

例如,專業設備可能會使用其他表示ISO 2047圖形或十六進制數字。

可打印字符

代碼20十六進制到7e十六進制,稱為可打印字符,表示字母,數字,標點符號,還有一些其他符號。總共有95個可打印字符。[M]

代碼20十六進制,“空間”字符表示單詞之間的空間,由鍵盤的空間欄產生。由於空間字符被認為是無形的圖形(而不是控製字符)[3]:223[46]它在下表中列出,而不是在上一節中列出。

代碼7F十六進制對應於不可打印的“刪除”(del)控製字符,因此從此圖表中省略了;它在上一節的圖表中涵蓋。ASCII的早期版本使用了UP箭頭商在(5e十六進制)和左箭頭而不是下劃線(5F十六進制)。[5][47]

二進制十月十二月十六進制字形
196319651967
010 00000403220 空間
010 00010413321
010 00100423422"
010 00110433523#
010 01000443624$
010 01010453725%
010 01100463826&
010 01110473927'
010 10000504028
010 10010514129
010 1010052422a*
010 1011053432b+
010 1100054442C
010 1101055452d-
010 1110056462e.
010 1111057472F/
011 000006048300
011 000106149311
011 001006250322
011 001106351333
011 010006452344
011 010106553355
011 011006654366
011 011106755377
011 100007056388
011 100107157399
011 1010072583a
011 1011073593b
011 1100074603C<
011 1101075613D=
011 1110076623e>
011 1111077633f
100 00001006440@`@
100 00011016541一個
100 00101026642B
100 00111036743C
100 01001046844d
100 01011056945e
100 01101067046F
100 01111077147G
100 10001107248H
100 10011117349I
100 1010112744aJ
100 1011113754bk
100 1100114764CL
100 1101115774Dm
100 1110116784en
100 1111117794fo
101 00001208050p
101 00011218151
101 00101228252r
101 00111238353s
101 01001248454t
101 01011258555
101 01101268656v
101 01111278757w
101 10001308858X
101 10011318959y
101 1010132905az
101 1011133915b[
101 1100134925C\~\
101 1101135935d]
101 1110136945e^
101 1111137955F_
110 00001409660@`
110 00011419761一個
110 00101429862b
110 00111439963c
110 010014410064d
110 010114510165e
110 011014610266f
110 011114710367g
110 100015010468h
110 100115110569i
110 10101521066aj
110 10111531076bk
110 11001541086Cl
110 11011551096dm
110 11101561106en
110 11111571116fo
111 000016011270p
111 000116111371q
111 001016211472r
111 001116311573s
111 010016411674t
111 010116511775u
111 011016611876v
111 011116711977w
111 100017012078x
111 100117112179y
111 10101721227az
111 10111731237b{
111 11001741247CACK¬|
111 11011751257d}
111 11101761267eESC鍵|~

字符集

ASCII(1977/1986)
0123456789一個BCdeF
0xnulSOHstxetxeotENQACK貝爾BSH T如果VTffcr所以si
1倍DLEDC1DC2DC3DC4納克synetb能夠EmESC鍵FSGS盧比我們
2倍sp"#$%&'*+-./
3倍0123456789<=>
4x@一個BCdeFGHIJkLmno
5倍prstvwXyz[\]^_
6x`一個bcdefghijklmno
7倍pqrstuvwxyz{|}~del
 1963年更改或添加
 1963年版本和1965年的草稿都發生了變化

用法

ASCII首次在1963年在商業上用作七位的電視代碼美國電話和電報的TWX(TeletyPewriter Exchange)網絡。TWX最初使用較早的五位ITA2,競爭也使用了電傳電信系統。鮑勃·貝默(Bob Bemer)引入的功能,例如逃脫序列.[4]他的英國同事休·麥格雷戈·羅斯根據Bemer的說法,有助於普及這項工作,“如此之多,以至於將成為ASCII的代碼首先被稱為Bemer – Ross代碼在歐洲”。[48]由於他在ASCII上的廣泛工作,Bemer被稱為“ ASCII之父”。[49]

1968年3月11日,美國總統林登·約翰遜(Lyndon B. Johnson)要求所有計算機由美國聯邦政府支持ASCII,說明:[50][51][52]

我還批准了商務部長[路德·H·霍奇斯(Luther H. Hodges)]關於在計算機操作中使用的標準代碼在磁帶和紙帶上記錄標準代碼。1969年7月1日和之後,所有計算機和相關的設備配置都必須在使用這些媒體時使用標準代碼進行信息交互和磁帶和紙帶標準所規定的格式。

ASCII是編碼上最常見的字符全球資訊網直到2007年12月,UTF-8編碼超過它; UTF-8是向下兼容與ASCII。[53][54][55]

變體和派生

隨著計算機技術在世界各地傳播,不同標準機構公司開發了ASCII的許多變體,以促進使用基於羅馬字母的非英語語言的表達。一個可以將其中一些變體分類為“ASCII擴展“儘管有些濫用該術語代表所有變體,包括不保留ASCII角色映射在7位範圍內的變體。此外,ASCII擴展也被錯誤地標記為ASCII。

7位代碼

從發展的早期開始[56]ASCII的目的只是國際角色代碼標準的幾種國家變體之一。

其他國際標準機構批准了字符編碼,例如ISO 646(1967年),與ASCII相同或幾乎相同,英語以外的角色擴展字母以及美國以外使用的符號,例如英國的符號英鎊(£);例如和代碼頁1104。幾乎每個國家都需要適應ASCII的版本,因為ASCII僅適合美國和其他一些國家的需求。例如,加拿大有自己的版本支持法語角色。

許多其他國家開發了ASCII的變體,包括非英語字母(例如éñߣ),貨幣符號(例如£¥)等。另請參見Yuscii(南斯拉夫)。

它將共享大多數共同的字符,但將其他本地有用的字符分配給幾個代碼點保留用於“國家用途”。但是,在ASCII-1963的發布與ISO在1967年期間首次接受國際建議之間過去的四年[57]導致ASCII的國家使用角色的選擇似乎是世界上事實上的標準,一旦其他國家開始對這些代碼點進行自己的任務,就會引起混亂和不相容。

ISO/IEC 646,例如ASCII,是一個7位字符集。它沒有提供任何其他代碼,因此相同的代碼點在不同國家 /地區編碼了不同的字符。定義了逃生代碼以指示哪種國家變體應用於一段文本,但很少使用,因此通常不可能知道可以使用哪種變體,因此,,因此,代碼代表哪個字符,通常是文本 - 無論如何,處理系統可以僅適用於一個變體。

因為ASCII的支架和支架字符被分配給“國家使用”代碼點,這些代碼點用於ISO/IEC 646的其他國家版本中,是德語,法語或瑞典語等。/IEC 646而不是ASCII,必須寫作,因此,請閱讀諸如

äiou='Ön'; ü

代替

{a [i] ='\ n'; }

c trigraphs是為解決這個問題而創建的ansi c,儘管他們的遲到的介紹和編譯器中的實施不一致限制了其使用。許多程序員將計算機保存在us-ascii上,因此在瑞典語,德語等中都純粹是文本(例如,在電子郵件或電子郵件中Usenet)包含“ {,}”和單詞中間的類似變體,這些程序員已經習慣了。例如,瑞典程序員郵寄另一個程序員詢問他們是否應該去午餐,可以得到“ n {jag har sm | rg} sar”作為答案,應該是“näjagharsmörgåsar”,這意味著“不,我有三明治”。

在日本和韓國,截至2020年代仍在使用ASCII的變體,其中後斜線(5C十六進制)被渲染為¥(a日元標誌,在日本)或₩(a贏了標誌, 在韓國)。這意味著,例如,文件路徑C:\ Users \ Smith顯示為C:¥用戶¥Smith(日本)或C:₩用戶₩Smith(在韓國)。

8位代碼

最終,8--,16-, 和32位(然後64位)計算機開始替換12-18-, 和36位計算機作為常態,使用8位字節將每個字節存儲在內存中變得普遍,為ASCII的擴展,8位親戚提供了機會。在大多數情況下,這些發展為ASCII的真實擴展,使原始字符映射完整,但是在第一個128(即7位)字符之後添加了其他字符定義。

編碼包括iscii(印度),Viscii(越南)。儘管這些編碼有時被稱為ASCII,但真正的ASCII僅由ANSI標準嚴格定義。

大多數早期的家用計算機系統都開發了自己的8位字符集,其中包含線條和遊戲字形,並且經常填充從0到31的某些或全部控製字符,並帶有更多圖形。凱普羅CP/m計算機為希臘字母使用了“上部” 128個字符。

petscii代碼國際準將用於他們的8位在1970年後的代碼中,系統可能是基於ASCII-1963的1970年代碼,而不是更常見的ASCII-1967,例如在ZX光譜計算機。atari8位計算機和Galaksija計算機還使用了ASCII變體。

IBM PC定義代碼第437頁,用圖形符號取代控製字符笑臉,並將其他圖形字符映射到上部128個位置。操作系統,例如dos支持這些代碼頁,以及IBM PC在硬件中支持他們。數字設備公司開發了跨國字符集(DEC-MCS)用於流行VT220終端作為最早為國際語言設計的擴展之一,而不是塊圖形。Macintosh定義Mac OS RomanPostScript還定義了一個集合,這兩者都包含國際字母和印刷標點標記而不是圖形,更像是現代角色集。

ISO/IEC 8859標準(源自DEC-MCS)最終提供了大多數係統複製的標準(至少與復制ASCII一樣準確,但具有許多替換)。由微軟設計的流行進一步擴展Windows-1252(經常被標記為ISO-8859-1),添加了傳統文本打印所需的印刷標點符號。ISO-8859-1,Windows-1252和原始的7位ASCII是最常見的字符編碼,直到2008年UTF-8變得更加普遍。[54]

ISO/IEC 4873引入了80-9F中定義的32個其他控制代碼十六進制範圍,作為將7位ASCII編碼擴展為8位系統的一部分。[58]

Unicode

Unicode和ISO/IEC 10646通用角色集(UCS)具有更大的字符,它們的各種編碼形式已經開始在許多環境中迅速取代ISO/IEC 8859。儘管ASCII僅限於128個字符,但Unicode和UCS通過分開唯一身份的概念來支持更多字符(使用自然數代碼點)和編碼(到8-,16-或32位二進制格式,稱為UTF-8UTF-16, 和UTF-32, 分別)。

ASCII被合併到Unicode(1991)的字符集中作為前128個符號,因此7位ASCII字符在兩組中具有相同的數字代碼。這允許UTF-8成為向下兼容使用7位ASCII,作為僅包含ASCII字符的UTF-8文件與包含相同字符序列的ASCII文件相同。更重要的是,正向兼容性確保僅識別僅7位ASCII字符為特殊的軟件,並且不會更改最高位的字節(通常是為支持8位ASCII擴展名(例如ISO-8859-1)所做的,將保留UTF-8數據不變。[59]

也可以看看

筆記

  1. ^一個bcde7位ASCII字符集的128個字符分為八個16個字符組,稱為棍子0-7,與三個相關最重要的位.[14]根據字符圖的水平或垂直表示,棍子對應於表行或列。
  2. ^從“控製圖片”區域U+2400到U+2421的Unicode字符保留在需要打印或顯示它們的情況下代表控製字符,而不是讓它們執行其預期功能。一些瀏覽器可能無法正確顯示這些瀏覽器。
  3. ^Caret符號通常用於表示終端上的控製字符。在大多數文本終端上,按住Ctrl鍵入第二個字符時將鍵入控製字符。有時不需要換檔鍵^@只需CTRL和2即可鍵入。
  4. ^角色逃脫序列中的C編程語言和許多其他受其影響的語言,例如爪哇珀爾(儘管並非所有實現都必須支持所有逃生序列)。
  5. ^backspace也可以通過按下來輸入角色←backspace關鍵在某些系統上。
  6. ^一個b歧義backspace是由於設計的早期終端假設鍵盤的主要用途是在未連接到計算機的同時手動打孔紙帶。為了刪除先前的字符,必須備份紙帶打孔,出於機械和簡單的原因,這是打孔本身而不是鍵盤上的按鈕,然後鍵入rubout字符。因此,他們在打字機上用於返回的位置放置了一個鍵產生的摩擦。當系統使用這些終端並提供命令行編輯時,他們必須使用“ rubout”代碼來執行backspace,並且通常沒有解釋backspace字符(它們可能會迴盪”^h“對於backspace)。其他未專為紙帶設計的終端使該位置的鑰匙產生了backspace,並且為這些角色設計的系統使用該字符備份。由於刪除代碼通常會產生backspace效果,因此這也迫使終端製造商使其製造出來任何刪除鑰匙會產生除刪除字符以外的其他內容。
  7. ^標籤字符也可以通過按下標籤↹大多數係統的關鍵。
  8. ^馬車返回也可以通過按下來輸入角色Enter或者返回大多數係統的關鍵。
  9. ^\ e逃脫序列不是ISO c以及許多其他語言規格。但是,幾個編譯器都理解了它,包括海灣合作委員會.
  10. ^逃脫角色也可以通過按下Esc鍵關鍵在某些系統上。
  11. ^^^表示Ctrl+^(按“ ctrl”和商在鑰匙)。
  12. ^刪除字符有時可以通過按下←backspace關鍵在某些系統上。
  13. ^打印出來,角色是:

參考

  1. ^ansi(1975-12-01)。ISO-IR-6:ASCII圖形字符集(PDF)。 itscj/ipsj。存檔原本的(PDF)在2022-03-10。
  2. ^一個b“角色集”.互聯網分配的數字權限(IANA)。 2007-05-14。檢索2019-08-25.
  3. ^一個bcdefghijklmnopqrsMackenzie,Charles E.(1980)。編碼角色集,歷史和發展(PDF).系統編程系列(1 ed。)。Addison-Wesley Publishing Company,Inc。第6、66、211、215、217、220、223、223、228、236–238、243–245、247–253、423、425-428、435-439。ISBN 978-0-201-14460-4.LCCN 77-90165.存檔(PDF)從2016年5月26日的原件。檢索8月25日,2019.
  4. ^一個bBrandel,Mary(1999-07-06)。“ 1963年:ASCII的首次亮相”.CNN.存檔從2013-06-17的原始。檢索2008-04-14.
  5. ^一個bcd“美國信息互換的標準守則,ASA X3.4-1963”.美國標準協會(作為一個)。 1963-06-17。檢索2020-06-06.
  6. ^一個bc美國信息互換的標準代碼,USAS X3.4-1967(技術報告)。美國標準學院(USASI)。 1967-07-07。
  7. ^詹寧斯,托馬斯·丹尼爾(2016-04-20)[1999]。“某些角色代碼或ASCII的註釋歷史:美國信息滲透的標準代碼”.敏感研究(SR-IX)。檢索2020-03-08.
  8. ^一個bc美國國家信息系統標準 - 編碼角色集 - 7位美國國家信息互換標準守則(7位ASCII),ANSI X3.4-1986(技術報告)。美國國家標準學院(ANSI)。 1986-03-26。
  9. ^Vint Cerf(1969-10-16)。網絡交換的ASCII格式.IETF.doi10.17487/RFC0020.RFC20.
  10. ^巴里·萊巴(Barry Leiba)(2015-01-12)。“將RFC 20(ASCII格式)的正確分類符合互聯網標準”.IETF.
  11. ^雪莉,R。(2007年8月)。互聯網安全詞彙表,版本2.doi10.17487/RFC4949.RFC4949。檢索2016-06-13.
  12. ^Maini,Anil Kumar(2007)。數字電子:原理,設備和應用.約翰·威利和兒子。 p。 28。ISBN 978-0-470-03214-5.此外,它為33個非打印的代碼定義了代碼,主要是影響文本處理方式的過時控製字符。
  13. ^布克斯坦,埃德(1964年7月)。“二進制計算機代碼和ASCII”.電子世界.72(1):28–29。存檔原本的在2016-03-03。檢索2016-05-22.
  14. ^一個bcdef貝默,羅伯特·威廉(1980)。“第1章:內部ASCII”(PDF).通用軟件。最好的界面年齡。卷。2.美國俄勒岡州波特蘭市:Dilithium Press。pp。1-50。ISBN 978-0-918398-37-6.LCCN 79-67462。存檔原本的在2016-08-27。檢索2016-08-27從:
  15. ^簡要報告:CCITT工作組會議在新電報字母上,1963年5月13日至15日。
  16. ^ISO/TC/97/SC 2的報告 - 1963年10月29日至31日的會議。
  17. ^1963年6月11日,華盛頓特區五角大樓大樓的任務組X3.2.4報告。
  18. ^1963年12月17日和18日,任務組X3.2.4號X3.2.4的會議報告
  19. ^一個bcWinter,Dik T.(2010)[2003]。“美國和國際標準:ASCII”。存檔原本的在2010-01-16。
  20. ^一個bcdefg薩爾斯特(Tuomas)(2016年1月)。“ 7位角色集:ASCII的修訂”。 Aivosto Oy。NBN:FI-FE201201111004.存檔從2016-06-13的原始。檢索2016-06-13.
  21. ^“信息”。科學美國人(特別版本)。215(3)。 1966年9月。Jstor E24931041.
  22. ^Korpela,Jukka K.(2014-03-14)[2006-06-07]。Unicode解釋了 - 國際化文檔,程序和網站(第一版的第二版)。O'Reilly Media,Inc。p。 118。ISBN 978-0-596-10121-3.
  23. ^ANSI INCITS 4-1986(R2007):美國國家信息系統標準 - 編碼角色集 - 7位美國國家標准信息互換守則(7位ASCII),2007 [1986]
  24. ^“ incits 4-1986 [R2012]:信息系統 - 編碼角色集 - 7位美國國家信息交換守則(7位ASCII)”。 2012-06-15。存檔從2020-02-28的原始。檢索2020-02-28.
  25. ^“ incits 4-1986 [R2017]:信息系統 - 編碼字符集 - 7位美國國家信息交換守則(7位ASCII)”。 2017-11-02 [2017-06-09]。存檔從2020-02-28的原始。檢索2020-02-28.
  26. ^美國國家標准信息互換中串行數據傳輸中信息互換的位測序美國國家標準學院(ANSI),1966年,X3.15-1966
  27. ^“勇敢:射電視電視通信”。 2005-10-10。存檔從2016-04-12的原始。檢索2016-05-09.CCITT於1924年引入的傳輸代碼使用國際電報字母2號(ITA-2)。
  28. ^一個b史密斯,吉爾(2001)。“電視通信代碼”(PDF)。 baudot.net。存檔(PDF)從2008-08-20的原始。檢索2008-07-11.
  29. ^Sawyer,Stanley A。;克蘭茲(Krantz),史蒂文·喬治(Steven George)(1995)。科學家的Tex入門.CRC出版社。 p。 13。Bibcode1995tps..book ..... s.ISBN 978-0-8493-7159-2.存檔從2016-12-22的原始。檢索2016-10-29.
  30. ^薩瓦德(John J. G.)“計算機鍵盤”.存檔從2014-09-24的原始。檢索2014-08-24.
  31. ^“ Asciibotical定義”.PC雜誌.存檔來自2013-03-09的原始。檢索2008-04-14.
  32. ^Resnick,P。(2001年4月)。Resnick,P(ed。)。互聯網消息格式.doi10.17487/RFC2822.RFC2822。檢索2016-06-13.(nb。no-ws-ctl。)
  33. ^麥康奈爾,羅伯特;海恩斯,詹姆斯;沃倫,理查德。“了解ASCII代碼”.存檔從2014-02-27的原始。檢索2014-05-11.
  34. ^巴里·馬戈林(Barry Margolin)(2014-05-29)。“回复:編輯和文字處理器歷史記錄(WAS:RE:rtf for Emacs)”.help-gnu-emacs(郵件列表)。存檔從2014-07-14的原始。檢索2014-07-11.
  35. ^一個b“ PDP-6多編程系統手冊”(PDF).數字設備公司(DEC)。 1965年。 43。存檔(PDF)從2014-07-14的原始。檢索2014-07-10.
  36. ^一個b“ PDP-10參考手冊,第3本書,與監視器進行通信”(PDF).數字設備公司(DEC)。 1969年。 5-5。存檔(PDF)從2011-11-15的原始。檢索2014-07-10.
  37. ^“幫助-GNU Emacs手冊”.存檔從2018-07-11的原始。檢索2018-07-11.
  38. ^蒂姆·帕特森(2007-08-08)。“ DOS是CP/M的撕裂嗎?”.多斯曼·德里弗爾(Dosman Drivel).存檔從2018-04-20的原始。檢索2018-04-19.
  39. ^Ossanna,J.F。Saltzer,J.H。(1970年11月17日至11月17日)。“將終端連接到時間分配系統的技術和人類工程問題”(PDF).1970年11月17日至1970年11月17日的論文集秋季聯合計算機會議(FJCC).AFIP按。 pp。355–362。存檔(PDF)從2012-08-19的原始。檢索2013-01-29.對於人和機器來說,使用“新線”功能(組合的運輸返回和線條饋線)比需要兩個功能來啟動新線路更簡單。美國國家標準X3.4-1968允許線條供電代碼具有新的含義。
  40. ^O'Sullivan,T。(1971-05-19)。telnet協議.互聯網工程工作隊(IETF)。pp。4-5。doi10.17487/rfc0158.RFC158。檢索2013-01-28.
  41. ^Neigus,Nancy J.(1973-08-12)。文件傳輸協議.互聯網工程工作隊(IETF)。doi10.17487/rfc0542.RFC542。檢索2013-01-28.
  42. ^Postel,喬恩(1980年6月)。文件傳輸協議.互聯網工程工作隊(IETF)。doi10.17487/RFC0765.RFC765。檢索2013-01-28.
  43. ^“ Mercurial的EOL翻譯計劃”。墨西哥。存檔從2016-06-16的原始。檢索2017-06-24.
  44. ^伯恩斯坦,丹尼爾·J。“ SMTP中的裸露LF”.存檔從2011-10-29的原始。檢索2013-01-28.
  45. ^CP/M 1.4接口指南(PDF).數字研究。 1978年。 10。存檔(PDF)從2019-05-29的原始。檢索2017-10-07.
  46. ^Cerf,Vinton Gray(1969-10-16)。網絡交換的ASCII格式。網絡工作組。doi10.17487/RFC0020.RFC20。檢索2016-06-13.(nb。幾乎相同的措辭USA X3.4-1968除了簡介。)
  47. ^Haynes,Jim(2015-01-13)。“第一手:乍得是我們最重要的產品:工程師對電視公司的記憶”。工程和技術歷史Wiki(ETHW)。存檔從2016-10-31的原始。檢索2016-10-31.從1961年的ASCII到1968年的ASCII發生了變化。一些計算機語言在1961年的ASCII中使用了字符,例如向上箭頭和左箭頭。這些角色從1968年的ASCII消失了。我們與Fred Mocking合作,到現在為止電視,在類型的圓柱體上會損害變化的角色,以使1961年ASCII的含義並沒有完全丟失。下劃線的角色是相當楔形的,因此也可以用作左箭頭。
  48. ^貝默,羅伯特·威廉.“ Bemer會見歐洲(計算機標準) - 計算機歷史小插曲”。 tableing-edge.com。存檔原本的在2013-10-17。檢索2008-04-14.(NB。Bemer在IBM當時。)
  49. ^“羅伯特·威廉·貝默:傳記”。 2013-03-09。存檔來自2016-06-16的原始內容。
  50. ^約翰遜,林登·貝恩斯(1968-03-11)。“備忘錄批准聯邦政府採用標准信息互換的標準守則”。美國總統職位項目。存檔從2007-09-14的原始。檢索2008-04-14.
  51. ^理查德·舒福德(Richard S. Shuford)(1996-12-20)。“回复:ASCII的早期歷史?”.新聞組alt.folklore.computers.Usenet: [email protected].
  52. ^Folts,Harold c。卡普(Karp),哈利(Harry)編輯。(1982-02-01)。數據通信標準的彙編(第二修訂版)。McGraw-Hill Inc.ISBN 978-0-07-021457-6.
  53. ^Dubost,Karl(2008-05-06)。“網絡上的UTF-8增長”.W3C博客.萬維網聯盟.存檔從2016-06-16的原始。檢索2010-08-15.
  54. ^一個b戴維斯,馬克(2008-05-05)。“搬到Unicode 5.1”.Google官方博客.存檔從2016-06-16的原始。檢索2010-08-15.
  55. ^戴維斯,馬克(2010-01-28)。“接近網絡50%的Unicode”.Google官方博客.存檔從2016-06-16的原始。檢索2010-08-15.
  56. ^“特定標準”,《 R. W. Reach的備忘錄》,X3-2會議 - 9月14日和15日,1961年9月18日
  57. ^Maréchal,R。(1967-12-22),ISO/TC 97 - 計算機和信息處理:接受ISO建議的接受號1052號
  58. ^Unicode聯盟(2006-10-27)。“第13章:特殊領域和格式字符”(PDF)。在艾倫,朱莉·D·(編輯)。Unicode標準,版本5.0。美國新澤西州上薩德爾河:美國:Addison-Wesley專業人士。 p。 314。ISBN 978-0-321-48091-0.存檔(PDF)從2022-10-09的原始。檢索2015-03-13.
  59. ^“ UTF-8(7) - Linux手冊頁”。 man7.org。 2014-02-26。存檔從2014-04-22的原始。檢索2014-04-21.

進一步閱讀

外部鏈接