กลับไปหน้าบทความ

อ่าน 10 นาที

รหัสควบคุม C0 และ C1

รหัส ควบคุม C0 และ C1 หรือ ชุด อักขระควบคุม กำหนดรหัสควบคุมสำหรับใช้ในข้อความโดยระบบคอมพิวเตอร์ที่ใช้ ASCII และอนุพันธ์ของ ASCII รหัสเหล่านี้แสดงข้อมูลเพิ่มเติมเกี่ยวกับข้อความ...

รหัสควบคุม C0 และ C1

รหัสควบคุม C0 และ C1หรือ ชุด อักขระควบคุมกำหนดรหัสควบคุมสำหรับใช้ในข้อความโดยระบบคอมพิวเตอร์ที่ใช้ASCIIและอนุพันธ์ของ ASCII รหัสเหล่านี้แสดงข้อมูลเพิ่มเติมเกี่ยวกับข้อความ เช่น ตำแหน่งของเคอร์เซอร์ คำสั่งให้ขึ้นบรรทัดใหม่ หรือข้อความแจ้งว่าได้รับข้อความแล้ว

รหัส C0 อยู่ในช่วง 00 HEX – 1F HEXและชุดรหัส C0 เริ่มต้นถูกกำหนดไว้ในISO 646 ( ASCII ) รหัส C1 อยู่ในช่วง 80 HEX – 9F HEXและชุดรหัส C1 เริ่มต้นถูกกำหนดไว้ในECMA-48 (ซึ่งต่อมาได้ปรับให้สอดคล้องกับ ISO 6429) ระบบ ISO/IEC 2022ในการกำหนดอักขระควบคุมและอักขระกราฟิกอนุญาตให้ใช้ชุดรหัส C0 และ C1 อื่นๆ สำหรับแอปพลิเคชันเฉพาะทางได้ แต่ไม่ค่อยได้ใช้กัน

การควบคุม C0

ASCIIกำหนดอักขระควบคุม 32 ตัว บวกกับอักขระ DEL จำนวนรหัสที่มากนี้เป็นที่ต้องการในเวลานั้น เนื่องจากคำสั่งควบคุมแบบหลายไบต์จะต้องใช้การใช้งานเครื่องสถานะในเทอร์มินัล ซึ่งทำได้ยากมากกับอุปกรณ์อิเล็กทรอนิกส์และเทอร์มินัลเชิงกลในยุคนั้น

มีเพียงรหัสไม่กี่ตัวเท่านั้นที่ยังคงใช้งานอยู่ ได้แก่ BEL, ESC และอักขระตัวดำเนินการรูปแบบ[ 1 ] (FE n ) ได้แก่ BS, HT, LF, VT, FF และ CR ส่วนรหัสอื่นๆ ไม่ได้ใช้งานหรือมีความหมายที่แตกต่างออกไป เช่น NUL เป็นตัวจบสตริง Cโปรโตคอลการถ่ายโอนข้อมูลบางอย่าง เช่นANPA-1312 , KermitและXMODEMใช้ SOH, STX, ETX, EOT, ACK, NAK และ SYN อย่างกว้างขวางเพื่อวัตถุประสงค์ที่ใกล้เคียงกับคำจำกัดความดั้งเดิม และรูปแบบไฟล์บางรูปแบบใช้ "ตัวคั่นข้อมูล" (IS n ) เช่นรูปแบบข้อมูล Unix [ 2 ]และวิธีการแยก บรรทัดสตริง ของPython [ 3 ]

ในมาตรฐาน ISO 6429:1992 (หรือ ECMA-48:1991) ชื่อของรหัสบางส่วนได้ถูกเปลี่ยนแปลงเพื่อให้เป็นกลางในเรื่องทิศทางการเขียน ส่วนคำย่อที่ใช้ยังคงเดิม เนื่องจากมาตรฐานได้ระบุไว้แล้วว่าคำย่อเหล่านั้นจะไม่เปลี่ยนแปลงเมื่อมีการแปลมาตรฐานเป็นภาษาอื่น ในตารางนี้แสดงทั้งชื่อใหม่และชื่อเดิมของส่วนควบคุมที่เปลี่ยนชื่อ (ชื่อเดิมคือชื่อที่ตรงกับคำย่อ)

Unicode มีรูปภาพควบคุม (Control Pictures)ที่สามารถใช้แทนอักขระควบคุม C0 เพื่อให้มองเห็นได้บนหน้าจอ อย่างไรก็ตาม การใช้ สัญลักษณ์เครื่องหมายแคเร็ต (caret notation)นั้นพบได้บ่อยกว่า

รหัสควบคุม ASCIIซึ่งเดิมกำหนดไว้ในANSI X3.4 [ 4 ]
ทศนิยม
เลขฐานสิบหก
คำย่อ ชื่อ คำอธิบาย
^@000นูแอลโมฆะ0ไม่มีผลอะไร เป็นรหัสของเทปกระดาษเปล่า และยังใช้สำหรับรองเพื่อลดความเร็วในการส่งสัญญาณด้วย
^A101TC 1 , SOHเริ่มต้นส่วนหัวอักขระตัวแรกของหัวข้อความ[ 5 ]
^B202TC 2 , STXเริ่มต้นข้อความปิดท้ายส่วนหัวและเริ่มต้นส่วนข้อความ
^C303TC 3 , ETXจบข้อความจบข้อความ เริ่มส่วนท้าย (จนถึงอักขระ TC ตัวถัดไป) [ 5 ] [ 6 ]
^D404TC 4 , EOTสิ้นสุดการส่งข้อมูลยุติการส่งข้อความหนึ่งข้อความหรือมากกว่า[ 5 ] [ 6 ]อาจวางเทอร์มินัลไว้ในโหมดสแตนด์บาย[ 6 ]
^E505TC 5 , ENQ, WRU [ a ]สอบถามกระตุ้นให้ฝั่งผู้รับตอบสนอง เพื่อตรวจสอบว่าข้อมูลนั้นยังคงอยู่หรือไม่
^F606TC 6 , ACKรับทราบแสดงว่าได้รับข้อความเรียบร้อยแล้ว
^G707เบล[]กระดิ่ง , แจ้งเตือน\aขอความช่วยเหลือจากเจ้าหน้าที่
^H808FE 0 , BSลบ\bเลื่อนไปทางซ้ายหนึ่งตำแหน่ง อักขระตัวถัดไปอาจทับซ้อนหรือแทนที่อักขระตัวเดิมได้
^ฉัน909FE 1 , HT, TAB [ c ]การจัดตารางอักขระ, การจัดตารางแนวนอน\tเลื่อนไปทางขวาเพื่อไปยังแท็บ ถัด ไป
^J100AFE 2 , LFสายป้อน\nเลื่อนลงมายังตำแหน่งเดียวกันในบรรทัดถัดไป (อุปกรณ์บางชนิดอาจเลื่อนไปอยู่คอลัมน์ซ้าย)
^K110BFE 3 , VTการจัดตารางแบบเส้น, การจัดตารางแบบแนวตั้ง\vเลื่อนลงไปยังจุดหยุดแท็บแนวตั้งถัดไป
^L120 องศาเซลเซียสFE 4 , FF, NP [ d ]ฟีดแบบฟอร์ม\fเลื่อนลงไปด้านบนสุดของหน้าถัดไป
^M130DFE 5 , CRการส่งคืนรถขนส่ง\rเลื่อนไปยังคอลัมน์ที่ศูนย์โดยยังคงอยู่บนบรรทัดเดิม
^N140ESO, LS 1 [ 13 ] [ e ]เลิกงานเปลี่ยนไปใช้ชุดอักขระอื่น
^O150FSI, LS 0 [ 13 ] [ e ]การเปลี่ยนแปลงในกลับไปใช้ชุดอักขระปกติหลังจาก SO
^P1610TC 7 , DC 0 , [ f ] DLEการหลุดออกจากลิงก์ข้อมูลทำให้ตัวอักษรที่ต่อเนื่องกันจำนวนจำกัดถูกตีความในรูปแบบที่แตกต่างกัน[ 15 ] [ 16 ]
^Q1711ดีซี1 , เอ็กซ์ออนการควบคุมอุปกรณ์หนึ่งเปิด (DC 1และ DC 2 ) หรือปิด (DC 3และ DC 4 ) อุปกรณ์

Teletype [ 7 ]ใช้สิ่งเหล่านี้สำหรับเครื่องอ่านเทปกระดาษและเครื่องเจาะเทปกระดาษ การใช้งานครั้งแรกกลายเป็นมาตรฐานโดยพฤตินัยสำหรับ การ ควบคุมการไหลของซอฟต์แวร์[ 17 ]

^R1812ดีซี2เทปการควบคุมอุปกรณ์สอง
^S1913DC 3 , XOFFการควบคุมอุปกรณ์ที่สาม
^T2014ดีซี4เทปการควบคุมอุปกรณ์สี่
^U2115TC 8 , NAKยอมรับเชิงลบการตอบสนองเชิงลบต่อผู้ส่ง เช่น การตรวจพบข้อผิดพลาด
^V2216TC 9 , SYNการทำงานแบบซิงโครนัสส่งในระบบส่งสัญญาณแบบซิงโครนัสเมื่อไม่มีการส่งอักขระอื่นใดอยู่ด้วย
^W2317TC 10 , ETBสิ้นสุดบล็อกการส่งข้อมูลจุดสิ้นสุดของบล็อกข้อมูลเมื่อข้อมูลถูกแบ่งออกเป็นบล็อกดังกล่าวเพื่อวัตถุประสงค์ในการส่ง
^X2418สามารถยกเลิกบ่งชี้ว่าข้อมูลก่อนหน้านี้ผิดพลาดหรือควรละเลย
^Y2519อีเอ็มสิ้นสุดสื่อระบุบนกระดาษหรือเทปแม่เหล็กว่าถึงจุดสิ้นสุดของส่วนที่ใช้งานได้ของเทปแล้ว[ 4 ]
^Z261Aซับทดแทนแทนที่อักขระที่ตรวจพบว่าไม่ถูกต้องหรือมีข้อผิดพลาดควรละเว้นข้อความนี้
^[271บีเอสเอสหนี[ g ]เปลี่ยนแปลงความหมายของไบต์จำนวนจำกัดที่ตามมาปัจจุบันมักใช้เพื่อแนะนำ ลำดับการหลีกเลี่ยง แบบ ANSI
^\281ซีIS 4 , FSตัวคั่นไฟล์สามารถใช้เป็นตัวคั่นเพื่อกำหนดขอบเขตของโครงสร้างข้อมูลได้ โดย US เป็นระดับต่ำสุด ขณะที่ RS, GS และ FS เป็นระดับที่สูงขึ้นเรื่อยๆ เพื่อแบ่งกลุ่มที่ประกอบด้วยรายการในระดับที่ต่ำกว่า ส่วน SP (ช่องว่าง) อาจถือได้ว่าเป็นระดับที่ต่ำกว่านั้นอีก
^]291DIS 3 , GSตัวคั่นกลุ่ม
^^301EIS 2 , RSตัวคั่นระเบียน
^_311FIS 1 , สหรัฐอเมริกาตัวคั่นหน่วย
แม้ว่าตัวอักษรสองตัวต่อไปนี้จะไม่ได้เป็นส่วนหนึ่งของกลุ่มอักขระควบคุม C0 อย่างเป็นทางการ แต่ก็อาจถือได้ว่ามีลักษณะบางอย่างของอักขระควบคุมในระบบเก่ามาก ๆ
 3220เอสพีช่องว่างบนเครื่องพิมพ์ ข้อความจะเลื่อนไปทางขวาหนึ่งตำแหน่ง เนื่องจากไม่มีตัวเลือกในการ "ลบ" ข้อความที่พิมพ์แล้ว ส่วนเครื่องแสดงผลจะถือว่านี่เป็นอักขระเว้นวรรค จึงเขียนทับอักขระที่มีอยู่ด้วยอักขระเว้นวรรคจากตารางอักขระ
^?1277Fเดลลบใช้สำหรับลบตัวอักษรบนเทปเจาะรู โดยการเจาะรูทั้งหมดออก ในกรณีอื่นๆ ควรละเว้นการใช้งานฟังก์ชันนี้
  1. ^ Teletypeระบุคีย์ WRU สำหรับ 'คุณคือใคร?' [ 7 ]
  2. ^ชื่อ BELL ถูกกำหนดโดย Unicode ให้กับอักขระที่ไม่เกี่ยวข้อง U+1F514 🔔 BELLในขณะที่อักขระควบคุม C0 และ C1 ไม่ได้รับการตั้งชื่ออย่างเป็นทางการโดยมาตรฐาน Unicode ในขณะนั้น แต่เกิดการขัดแย้งกับการใช้งาน BELL ที่มีอยู่แล้วในฐานะชื่อของอักขระควบคุมนี้ในซอฟต์แวร์ที่ใช้ UTS#18 เวอร์ชันก่อนหน้า (มาตรฐานนิพจน์ปกติของ Unicode)[ 8 ] เช่นใน Perl [ 9 ]ปัจจุบัน Unicode ยอมรับ ALERT และ BEL (แต่ไม่ใช่ BELL) เป็นชื่อแทนอย่างเป็นทางการสำหรับอักขระควบคุม [ 10 ]แม้ว่าแผนภูมิรหัสจะยังคงระบุ BELL เป็นชื่อแทน ISO 6429 [ 11 ]และรหัสจุดภาพควบคุม ที่สอดคล้องกัน เรียกว่า SYMBOL FOR BELL ต่อมา Perl ได้เปลี่ยนไปใช้ BELL สำหรับ U+1F514 ในเวอร์ชัน 5.18 [ 12 ]
  3. ^ MS-DOS และระบบปฏิบัติการที่พัฒนาต่อยอดจาก MS-DOS เรียกสิ่งนี้ว่า TAB ตามตารางในคู่มือช่วยเหลือของ QBASIC ความหมายจึงเหมือนกัน คือ การจัดเรียงตาราง (แนวนอน)
  4. ^ MS-DOS และระบบปฏิบัติการที่พัฒนาต่อยอดจาก MS-DOS เรียกสิ่งนี้ว่า NP (Next Page) ตามตารางในคู่มือช่วยเหลือของ QBASIC ความหมายก็เหมือนกัน คือ เลื่อนลงไปด้านบนของหน้าถัดไป
  5. ^ a b ISO/IEC 2022 (ECMA-35) อ้างถึงสิ่งเหล่านี้เป็น LS0 และ LS1 ในสภาพแวดล้อม 8 บิต และเป็น SI และ SO ในสภาพแวดล้อม 7 บิต[ 13 ]
  6. ^ ASCII ฉบับแรกในปี 1963 จัดประเภท DLEเป็นการควบคุมอุปกรณ์ แทนที่จะเป็นการควบคุมการส่งข้อมูล และให้ตัวย่อว่า DC0 ("การควบคุมอุปกรณ์ที่สงวนไว้สำหรับการหลุดออกจากลิงก์ข้อมูล") [ 14 ]
  7. ^ ลำดับการหลีกเลี่ยง ' \e ' ไม่ได้เป็นส่วนหนึ่งของมาตรฐาน ISO C และข้อกำหนดภาษาอื่นๆ อีกมากมาย อย่างไรก็ตาม คอมไพเลอร์หลายตัว รวมถึง GCCเข้าใจลำดับการหลีกเลี่ยงนี้

C1 ควบคุม

ในปี พ.ศ. 2516 ECMA-35และISO 2022 [ 18 ]พยายามกำหนดวิธีการแปลงรหัส "ASCII ขยาย" 8 บิตเป็นรหัส 7 บิตที่สอดคล้องกัน และในทางกลับกัน [ 19 ] ในสภาพแวดล้อม 7 บิต Shift Out ( SO ) จะเปลี่ยนความหมายของไบต์ 96 ไบต์0x20ถึง0x7F [ a ] ​​[ 21 ] (เช่น ยกเว้นรหัสควบคุม C0) ให้เป็นอักขระที่สภาพแวดล้อม 8 บิตจะพิมพ์หากใช้รหัสเดียวกันโดยตั้งค่าบิตสูงไว้ ซึ่งหมายความว่าช่วง0x80ถึง0x9Fไม่สามารถพิมพ์ได้ในสภาพแวดล้อม 7 บิต[ 19 ]ดังนั้นจึงตัดสินใจว่าไม่มีชุดอักขระทางเลือกใดที่สามารถใช้รหัสเหล่านี้ได้ และรหัสเหล่านี้ควรเป็นรหัสควบคุมเพิ่มเติม ซึ่งต่อมาเรียกว่ารหัสควบคุม C1 เพื่อให้สภาพแวดล้อม 7 บิตสามารถใช้การควบคุมใหม่เหล่านี้ได้ ลำดับต่างๆจะต้องถือว่าเทียบเท่ากัน[ 19 ] มาตรฐาน ISO 8859ในภายหลังได้ยกเลิกการสนับสนุนรหัส 7 บิต แต่ยังคงรักษาช่วงของอักขระควบคุมนี้ไว้ ESC @ESC _

รหัสควบคุม C1 ชุดแรกที่ลงทะเบียนเพื่อใช้กับ ISO 2022 คือDIN 31626 [ 22 ] ซึ่งเป็นชุดเฉพาะสำหรับการใช้งานทางบรรณานุกรมที่ลงทะเบียนในปี 1979 [ 23 ]

ชุดมาตรฐาน ISO/IEC 6429ที่ใช้กันทั่วไปได้รับการจดทะเบียนในปี 1983 [ 24 ]แม้ว่าข้อกำหนด ECMA-48 ซึ่งเป็นพื้นฐานจะได้รับการเผยแพร่ครั้งแรกในปี 1976 [ 25 ]และJIS X 0211 (เดิมคือ JIS C 6323) [ 26 ] นอกจากนี้ยังมีการใช้ ชื่อเชิงสัญลักษณ์ที่กำหนดโดยRFC  1345และร่างแรกของ ISO 10646 แต่ไม่ได้อยู่ใน ISO/IEC 6429 ( PAD , HOPและSGC ) [ 9 ] [ 27 ]

ยกเว้นSS2และSS3ใน ข้อความ EUC-JPและNELในข้อความที่แปลงรหัสจากEBCDICแล้ว รูปแบบ 8 บิตของรหัสเหล่านี้แทบไม่เคยถูกนำมาใช้เลยCSI , DCSและOSCถูกใช้เพื่อควบคุมเทอร์มินัลข้อความและโปรแกรมจำลองเทอร์มินัลแต่เกือบทุกครั้งจะใช้การแสดงรหัสหลีกเลี่ยงแบบ 7 บิต ปัจจุบัน หากพบรหัสเหล่านี้ มักมีจุดประสงค์เพื่อพิมพ์อักขระจากตำแหน่งนั้นของWindows-1252หรือMac OS Roman

ยกเว้นNELแล้ว Unicode ไม่ได้จัดเตรียม "ภาพควบคุม" สำหรับอักขระเหล่านี้ และไม่มีรูปแบบสัญลักษณ์ Caret ที่เป็นที่รู้จักกันดีสำหรับอักขระเหล่านี้เช่นกัน

รหัสควบคุม ISO/IEC 6429 และ RFC 1345 C1
เอสซีเอส+
ทศนิยม
เฮกซ์
ตัวย่อ ชื่อคำอธิบาย[ 28 ]
@12880PAD [ 10 ]อักขระเว้นระยะ[ b ]เสนอให้เป็น "ส่วนเติม" หรือ "ไบต์สูง" สำหรับอักขระไบต์เดียวเพื่อให้มีความยาวสองไบต์เพื่อการทำงานร่วมกันได้ง่ายขึ้นกับอักขระหลายไบต์รหัส Unix แบบขยาย (EUC) บางครั้งก็ใช้สิ่งนี้[ 32 ]
เอ12981HOP [ 10 ]ค่าที่ตั้งไว้ล่วงหน้าสำหรับอ็อกเทตสูง[ b ]เสนอให้กำหนดค่าไบต์สูงสุดของลำดับอักขระหลายไบต์เพื่อให้แต่ละตัวใช้เพียงหนึ่งไบต์เท่านั้น ซึ่งเป็นรูปแบบการบีบอัดข้อมูลอย่างง่าย
บี13082บีเอฟพีอนุญาตให้หยุดพักตรงนี้[ c ]ตามหลังอักขระกราฟิกที่อนุญาตให้ขึ้นบรรทัดใหม่ได้ คล้ายกับเครื่องหมายยัติภังค์หรือช่องว่างที่มีความกว้างเป็นศูนย์แต่ไม่ได้กำหนดว่าจะพิมพ์อะไรเมื่อขึ้นบรรทัดใหม่
ซี13183เอ็นบีเอชห้ามหยุดพักตรงนี้[ c ]เป็นไปตามลักษณะกราฟิกที่ไม่สามารถแตกหักได้ ดูเพิ่มเติมที่ตัวเชื่อมคำ (word joiner )
ดี13284อินเดียดัชนี[ d ]เลื่อนลงมาหนึ่งบรรทัดโดยไม่เลื่อนในแนวนอน เพื่อขจัดความกำกวมเกี่ยวกับความหมายของ LF
อี13385เอ็นแอลบรรทัดถัดไปเทียบเท่ากับ CR+LF เพื่อให้ตรงกับอักขระควบคุม ของ EBCDIC
เอฟ13486เอสเอสเอจุดเริ่มต้นของพื้นที่ที่เลือกใช้โดยเทอร์มินัลแบบบล็อกในxtermESC Fจะย้ายไปที่มุมล่างซ้ายของหน้าจอ เนื่องจากซอฟต์แวร์บางตัวถือว่ามีพฤติกรรมนี้[ 35 ]
จี13587อีเอสเอสิ้นสุดพื้นที่ที่เลือก
ชม13688เอชทีเอส
  • ชุดตารางอักขระ
  • ชุดการจัดตารางแนวนอน
ตั้งตัวหยุดแท็บไว้ที่ตำแหน่งปัจจุบัน
ฉัน13789เอชทีเจ
  • ตารางอักขระพร้อมเหตุผลประกอบ
  • การจัดตารางแนวนอนพร้อมการจัดแนว
จัดข้อความชิดขวา โดยเริ่มจากแท็บสุดท้ายจนถึงจุดหยุดแท็บถัดไป
เจ1388Aวีทีเอส
  • ชุดการจัดตารางเส้น
  • ชุดการจัดตารางแนวตั้ง
ตั้งค่าจุดหยุดแท็บแนวตั้ง
เค1398Bพีแอลดี
  • บางส่วนไปข้างหน้า
  • เส้นบางส่วนลง
เพื่อสร้างตัวห้อยและตัวยกในมาตรฐาน ISO/IEC 6429ตัวห้อยใช้ส่วนตัวยกใช้. PLD text PLUPLU text PLD
แอล1408Cพีแอลยู
  • เส้นบางส่วนย้อนกลับ
  • รายชื่อผู้เล่นบางส่วน
เอ็ม1418Dไออาร์ไอ
  • การป้อนสายย้อนกลับ
  • ดัชนีย้อนกลับ
เลื่อนขึ้นไปหนึ่งบรรทัด
เอ็น1428Eเอสเอส2กะเดียว 2ตัวละครถัดไปมาจากชุด G2 หรือ G3 ตามลำดับ
โอ1438Fเอสเอส3กะเดียว 3
พี14490ดีซีเอสสตริงควบคุมอุปกรณ์ตามด้วยสตริงของอักขระที่พิมพ์ได้ (0x20 ถึง 0x7E) และเอฟเฟกต์รูปแบบ (0x08 ถึง 0x0D) สิ้นสุดด้วย ST (0x9C) Xtermได้กำหนดสิ่งเหล่านี้ไว้จำนวนหนึ่ง[ 36 ]
คิว14591พียู1สำหรับใช้ส่วนตัว 1สงวนไว้สำหรับการใช้งานส่วนตัวตามที่ผู้ส่งและผู้รับข้อมูลตกลงกันไว้
อาร์14692พียู2สำหรับใช้ส่วนตัว 2
เอส14793เอสทีเอสตั้งค่าสถานะการส่ง
ที14894ซีเอชยกเลิกอักขระปุ่มลบแบบทำลายล้าง เพื่อขจัดความกำกวมเกี่ยวกับความหมายของ BS
ยู14995เอ็มดับเบิลยูข้อความกำลังรอ
วี15096สปาจุดเริ่มต้นของพื้นที่คุ้มครองใช้โดย เทอ ร์ มินัลแบบบล็อก
15197EPAสิ้นสุดพื้นที่คุ้มครอง
X15298เอสโอเอสเริ่มต้นสตริง[ c ]ตามด้วยสตริงควบคุมที่ลงท้ายด้วยST (0x9C) ซึ่ง (ต่างจากDCS , OSC , PMหรือAPC ) อาจมีอักขระใดก็ได้ยกเว้น SOS หรือ ST
วาย15399SGC, [ 10 ] SGCI [ 37 ]ตัวแนะนำอักขระกราฟิกเดี่ยว[ b ]มีจุดประสงค์เพื่อให้สามารถพิมพ์อักขระUnicode ใดๆ ก็ได้ โดยจะตามด้วย 4 ไบต์เพื่อกำหนดจุดรหัส 32 บิต ซึ่งส่วนใหญ่จะเป็นแบบ big-endian [ 37 ]
1549Aเอสซีไอตัวแนะนำอักขระเดี่ยว[ c ]ตามด้วยอักขระที่พิมพ์ได้ตัวเดียว (0x20 ถึง 0x7E) หรือตัวจัดรูปแบบ (0x08 ถึง 0x0D) และพิมพ์เป็น ASCII โดยไม่คำนึงถึงว่าใช้ชุดกราฟิกหรือชุดควบคุมใดอยู่
[1559Bซีเอสไอตัวแนะนำลำดับควบคุมใช้สำหรับแนะนำลำดับควบคุมที่รับพารามิเตอร์ ใช้สำหรับลำดับหลีกเลี่ยงตามมาตรฐาน ANSI
\1569Cส.ตัวจบสตริงยุติสายสนทนาที่เริ่มต้นโดย DCS , SOS , OSC , PMหรือAPC
]1579Dโอเอสซีคำสั่งระบบปฏิบัติการตามด้วยสตริงของอักขระที่พิมพ์ได้ (0x20 ถึง 0x7E) และตัวจัดรูปแบบ (0x08 ถึง 0x0D) ปิดท้ายด้วย ST (0x9C) ซึ่งมีจุดประสงค์เพื่ออนุญาตให้ส่งสัญญาณข้อมูลโปรโตคอลภายในแบนด์ แต่ไม่ค่อยได้ใช้เพื่อวัตถุประสงค์นั้น

โปรแกรมจำลองเทอร์มินัลบางตัวรวมถึงxtermใช้ลำดับ OSC สำหรับการตั้งค่าชื่อหน้าต่างและการเปลี่ยนจานสี นอกจากนี้ยังอาจรองรับการยุติลำดับ OSC ด้วยBELแทน ST [ 38 ] Kermitใช้ APC ในการส่งคำสั่ง[ 39 ] Kittyใช้ APC ในการเรนเดอร์กราฟิกโดยใช้ Kitty Graphics Protocol [ 40 ]

^1589Eนายกรัฐมนตรีข้อความเกี่ยวกับความเป็นส่วนตัว
_1599Fเอพีซีคำสั่งโปรแกรมแอปพลิเคชัน
  1. ^ในเวอร์ชันแรกๆ ช่วงดังกล่าวไม่รวม SPและ DEL [ 20 ]
  2. ^ a b cไม่เป็นส่วนหนึ่งของ ISO/IEC 6429 (ECMA-48) [ 9 ] [ 27 ] [ 29 ] : 4 [ 30 ] : 5 [ 31 ] : 8
  3. ^ a b c dไม่เป็นส่วนหนึ่งของ ISO/IEC 6429 ฉบับแรก[ 24 ] [ 29 ] : 4
  4. ^เลิกใช้ในปี 1988 และถอนออกในปี 1992 จาก ISO/IEC 6429 [ 31 ] : 87 (ปี 1986 [ 33 ]และปี 1991 [ 34 ]ตามลำดับสำหรับ ECMA-48)

ชุดรหัสควบคุมอื่นๆ

กลไกส่วนขยาย ISO /IEC 2022 (ECMA-35) อนุญาตให้ลำดับการหลีกเลี่ยงเปลี่ยนชุด C0 และ C1 ชุดอักขระควบคุม C0 มาตรฐานที่แสดงด้านบนจะถูกเลือกด้วยลำดับ และชุด C1 ด้านบน จะESC ! @ถูกเลือกด้วยลำดับ[ESC " C 24 ]

มีการกำหนดทางเลือกอย่างเป็นทางการและไม่เป็นทางการไว้หลายทาง แต่ส่วนใหญ่ล้าสมัยไปแล้ว ส่วนใหญ่ถูกบังคับให้รักษาความเข้ากันได้กับตัวควบคุม ASCII ไว้เป็นอย่างดีเพื่อให้สามารถทำงานร่วมกันได้ มาตรฐานกำหนดให้ ESC [ 41 ] [ 42 ] SP และ DEL [ a ] ​​เป็นอักขระที่เข้ารหัสแบบ "คงที่" ซึ่งมีให้ใช้งานในตำแหน่ง ASCII ในทุกการเข้ารหัสที่สอดคล้องกับมาตรฐาน[ 44 ]นอกจากนี้ยังระบุว่าหากชุด C0 มีรหัสควบคุมการส่งสัญญาณ (TC n ) รหัสเหล่านั้นจะต้องถูกเข้ารหัสในตำแหน่ง ASCII [ 41 ]และไม่สามารถใส่ในชุด C1 ได้[ 45 ]และการควบคุมการส่งสัญญาณใหม่ใดๆ ก็ตามจะต้องอยู่ในชุด C1 [ 41 ]

ชุดอักขระ C0 ทางเลือก

  • ANPA-1312ซึ่งเป็นภาษามาร์กอัปข้อความที่ใช้ในการส่งข่าวสาร ได้เข้ามาแทนที่อักขระควบคุม C0 หลายตัว
  • IPTC 7901ซึ่งเป็นเวอร์ชันสากลที่ใหม่กว่าของมาตรฐานข้างต้น มีรูปแบบที่แตกต่างกันออกไป
  • Videotexมีชุดอุปกรณ์ที่แตกต่างออกไปโดยสิ้นเชิง
  • Teletextยังกำหนดชุดคำสั่งที่คล้ายกับ Videotex อีกด้วย
  • T.61 / T.51 [ 46 ]และอื่นๆ[ 47 ]แทนที่ EM และ GS ด้วย SS2 และ SS3 เพื่อให้สามารถใช้ฟังก์ชันเหล่านี้ในสภาพแวดล้อม 7 บิตได้โดยไม่ต้องใช้ลำดับการหลีกเลี่ยง
  • ชุดบางชุดแทนที่ FS ด้วย SS2 [ 48 ] (เหมือนกับ ANPA-1312)
  • มาตรฐาน JIS C 6225 ที่ถูกยกเลิกไปแล้ว ซึ่งกำหนดให้เป็น JIS X 0207 ในแหล่งข้อมูลในภายหลัง[ 49 ]ได้แทนที่ FS ด้วย CEX หรือ "ส่วนขยายการควบคุม" [ 50 ]ซึ่งแนะนำลำดับการควบคุมสำหรับพฤติกรรมข้อความแนวตั้ง ตัวยกและตัวห้อย[ 51 ]และสำหรับการส่งกราฟิกอักขระแบบกำหนดเอง[ 49 ]

ชุดอักขระ C1 ทางเลือก

  • ชุดรหัสควบคุม C1 เฉพาะได้รับการลงทะเบียนสำหรับการใช้งานทางบรรณานุกรม (รวมถึงการเรียงลำดับสตริง) เช่นโดยMARC- 8 [ 23 ] [ 52 ] [ 53 ]
  • ชุดรหัสควบคุม C1 เฉพาะทางต่างๆ ได้รับการจดทะเบียนเพื่อใช้ในรูปแบบVideotex [ 22 ]
  • ระบบ ปฏิบัติการ Stratus VOSใช้ชุด C1 ที่เรียกว่าชุดควบคุม NLS [ 54 ] ซึ่งประกอบด้วยตัวควบคุม SS1 (Single-Shift 1) ถึง SS15 (Single-Shift 15) [ 55 ]ใช้สำหรับเรียกอักขระแต่ละตัวจากชุดอักขระเสริมที่กำหนดไว้ล่วงหน้า[ 56 ]ในลักษณะเดียวกับกลไกการเลื่อนครั้งเดียวของ ISO/IEC 2022ตัวควบคุมการเลื่อนครั้งเดียวเพียงอย่างเดียวที่กำหนดโดย ISO/IEC 2022 คือ SS2 และ SS3 ซึ่งจะถูกเก็บไว้ในชุด VOS ที่จุดรหัสเดิมและทำงานในลักษณะเดียวกัน
  • EBCDICกำหนดรหัสควบคุมเพิ่มเติมได้มากถึง 29 รหัส นอกเหนือจากรหัสที่มีอยู่ใน ASCII เมื่อแปลง EBCDIC เป็นUnicode (หรือเป็นISO 8859 ) รหัสเหล่านี้จะถูกแมปกับอักขระควบคุม C1 ในลักษณะที่กำหนดโดยสถาปัตยกรรมการแสดงข้อมูลอักขระ (CDRA) ของ IBM [ 57 ] [ 58 ]แม้ว่าอักขระขึ้นบรรทัดใหม่ (NL) จะถูกแปลงเป็น ISO/IEC 6429 NEL (แม้ว่าจะมักถูกสลับกับ LF ตามธรรมเนียมการจบบรรทัดของ UNIX) [ 57 ]แต่รหัสควบคุมที่เหลือจะไม่ตรงกัน ตัวอย่างเช่น รหัสควบคุมSPS ของ EBCDIC และ รหัสควบคุม PLU ของ ECMA-48 ต่างก็ใช้เพื่อเริ่มต้นตัวยกหรือจบตัวห้อย แต่ไม่ได้ถูกแมปเข้าหากัน ดังนั้น EBCDIC ที่แมปกับ Extended-ASCII จึงถือได้ว่ามีชุด C1 ของตัวเอง แม้ว่าจะไม่ได้ลงทะเบียนกับ รีจิสทรี ISO-IRสำหรับ ISO/IEC 2022 ก็ตาม [ 22 ]

ยูนิโค้ด

Unicode สงวนรหัสจุด 65 รหัสที่อธิบายไว้ข้างต้นไว้เพื่อความเข้ากันได้กับรหัสควบคุม C0 และ C1 โดยกำหนดให้เป็นหมวดหมู่ทั่วไปCc (ควบคุม) รหัสจุดเหล่านั้นได้แก่:

  • U+0000–U+001F (ตัวควบคุม C0) และU+007F (DEL) ถูกกำหนดให้กับบล็อกตัวควบคุม C0 และบล็อก ภาษาละตินพื้นฐาน และ
  • U+0080–U+009F (ตัวควบคุม C1) ถูกกำหนดให้กับ บล็อกตัวควบคุม C1 และ บล็อกเสริม Latin-1

Unicode กำหนดความหมายเฉพาะสำหรับตัวควบคุมรูปแบบ C0 HT, LF, VT, FF และ CR (หมายเหตุ BS หายไป); ตัวคั่นข้อมูล C0 FS, GS, RS, US (และ SP); และตัวควบคุม C1 NEL เท่านั้น[ 59 ]รหัสที่เหลือโปร่งใสต่อ Unicode และความหมายของรหัสเหล่านั้นขึ้นอยู่กับโปรโตคอลระดับสูงกว่า โดย แนะนำให้ใช้ ISO/IEC 6429เป็นค่าเริ่มต้น[ 59 ]

Unicode ประกอบด้วยอักขระควบคุมรูปแบบเพิ่มเติมอีกมากมายนอกเหนือจากที่กล่าวมา เช่นเครื่องหมาย การฝัง การแยก และการแทรกสำหรับการจัดรูปแบบสองทิศทางอย่างชัดเจน และตัวเชื่อมต่อแบบไม่มีความกว้างและตัวเชื่อมต่อแบบไม่เชื่อมต่อสำหรับการควบคุมการใช้ตัวเชื่อม อย่างไรก็ตาม อักขระเหล่านี้จะถูกจัดอยู่ในหมวดหมู่ทั่วไปCf(รูปแบบ) แทนที่จะCcเป็น

ดูเพิ่มเติม

เชิงอรรถ

  1. ^ ISO/IEC 4873ขยายข้อกำหนดนี้ไปยัง C1 SS2 และ SS3 [ 43 ]แม้ว่า ISO/IEC 2022 เองจะไม่ได้ขยายก็ตาม
  • มาตรฐานยูนิโค้ด
    • C0 การควบคุมและภาษาละตินพื้นฐาน
    • ตัวควบคุม C1 และส่วนเสริมละติน-1
    • ภาพควบคุม
    • มาตรฐานยูนิโค้ด เวอร์ชัน 6.1.0 บทที่ 16: พื้นที่พิเศษและอักขระรูปแบบ
  • คำศัพท์ด้านโทรคมนาคมของ ATIS ปี 2007
  • De litteris regentibus C1 septemหรืออักขระ C1 ถูกกฎหมายใน XHTML 1.0 หรือไม่
  • คำถามที่พบบ่อยของ W3C I18N: HTML, XHTML, XML และรหัสควบคุม
  • ทะเบียนชุดอักขระเข้ารหัสสากลที่ใช้กับลำดับหลีกเลี่ยง (Escape Sequences) เก็บถาวรเมื่อวันที่ 12 พฤษภาคม 2023 ที่Wayback Machine
ดึงข้อมูลมาจาก " https://en.wikipedia.org/w/index.php?title=C0_and_C1_control_codes&oldid=1358480202#LF "

สรุปเนื้อหา

ข้อมูลสำคัญจากบทความ

ข้อมูลสำคัญเกี่ยวกับ รหัสควบคุม C0 และ C1

รหัส ควบคุม C0 และ C1 หรือ ชุด อักขระควบคุม กำหนดรหัสควบคุมสำหรับใช้ในข้อความโดยระบบคอมพิวเตอร์ที่ใช้ ASCII และอนุพันธ์ของ ASCII รหัสเหล่านี้แสดงข้อมูลเพิ่มเติมเกี่ยวกับข้อความ...

การควบคุม C0

ASCII กำหนดอักขระควบคุม 32 ตัว บวกกับอักขระ DEL จำนวนรหัสที่มากนี้เป็นที่ต้องการในเวลานั้น เนื่องจากคำสั่งควบคุมแบบหลายไบต์จะต้องใช้การใช้งานเครื่องสถานะในเทอร์มินัล ซึ่งทำได้ยากมากกับอุปกรณ์อิเล็กทรอนิกส์และเทอร์มินัลเชิงกลในยุคนั้น

C1 ควบคุม

ในปี พ.ศ. 2516 ECMA-35 และ ISO 2022 [ 18 ] พยายามกำหนดวิธีการแปลงรหัส "ASCII ขยาย" 8 บิตเป็นรหัส 7 บิตที่สอดคล้องกัน และ ในทางกลับกัน [ 19 ] ใน สภาพแวดล้อม 7 บิต Shift Out ( SO ) จะเปลี่ยนความหมายของไบต์ 96 ไบต์ 0x20 ถึง 0x7F [ a ] ​​[ 21 ] (เช่น...

ชุดรหัสควบคุมอื่นๆ

กลไกส่วนขยาย ISO /IEC 2022 (ECMA-35) อนุญาตให้ลำดับการหลีกเลี่ยงเปลี่ยนชุด C0 และ C1 ชุดอักขระควบคุม C0 มาตรฐานที่แสดงด้านบนจะถูกเลือกด้วยลำดับ และชุด C1 ด้านบน จะ ESC ! @ ถูกเลือกด้วยลำดับ [ ESC " C 24 ]