อ่าน 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)นั้นพบได้บ่อยกว่า
ทศนิยม | เลขฐานสิบหก | คำย่อ | ชื่อ | คำอธิบาย | |||||
|---|---|---|---|---|---|---|---|---|---|
| ^@ | 0 | 00 | นูแอล | ␀ | โมฆะ | 0 | ไม่มีผลอะไร เป็นรหัสของเทปกระดาษเปล่า และยังใช้สำหรับรองเพื่อลดความเร็วในการส่งสัญญาณด้วย | ||
| ^A | 1 | 01 | TC 1 , SOH | ␁ | เริ่มต้นส่วนหัว | อักขระตัวแรกของหัวข้อความ[ 5 ] | |||
| ^B | 2 | 02 | TC 2 , STX | ␂ | เริ่มต้นข้อความ | ปิดท้ายส่วนหัวและเริ่มต้นส่วนข้อความ | |||
| ^C | 3 | 03 | TC 3 , ETX | ␃ | จบข้อความ | จบข้อความ เริ่มส่วนท้าย (จนถึงอักขระ TC ตัวถัดไป) [ 5 ] [ 6 ] | |||
| ^D | 4 | 04 | TC 4 , EOT | ␄ | สิ้นสุดการส่งข้อมูล | ยุติการส่งข้อความหนึ่งข้อความหรือมากกว่า[ 5 ] [ 6 ]อาจวางเทอร์มินัลไว้ในโหมดสแตนด์บาย[ 6 ] | |||
| ^E | 5 | 05 | TC 5 , ENQ, WRU [ a ] | ␅ | สอบถาม | กระตุ้นให้ฝั่งผู้รับตอบสนอง เพื่อตรวจสอบว่าข้อมูลนั้นยังคงอยู่หรือไม่ | |||
| ^F | 6 | 06 | TC 6 , ACK | ␆ | รับทราบ | แสดงว่าได้รับข้อความเรียบร้อยแล้ว | |||
| ^G | 7 | 07 | เบล[ข] | ␇ | กระดิ่ง , แจ้งเตือน | \a | ขอความช่วยเหลือจากเจ้าหน้าที่ | ||
| ^H | 8 | 08 | FE 0 , BS | ␈ | ลบ | \b | เลื่อนไปทางซ้ายหนึ่งตำแหน่ง อักขระตัวถัดไปอาจทับซ้อนหรือแทนที่อักขระตัวเดิมได้ | ||
| ^ฉัน | 9 | 09 | FE 1 , HT, TAB [ c ] | ␉ | การจัดตารางอักขระ, การจัดตารางแนวนอน | \t | เลื่อนไปทางขวาเพื่อไปยังแท็บ ถัด ไป | ||
| ^J | 10 | 0A | FE 2 , LF | ␊ | สายป้อน | \n | เลื่อนลงมายังตำแหน่งเดียวกันในบรรทัดถัดไป (อุปกรณ์บางชนิดอาจเลื่อนไปอยู่คอลัมน์ซ้าย) | ||
| ^K | 11 | 0B | FE 3 , VT | ␋ | การจัดตารางแบบเส้น, การจัดตารางแบบแนวตั้ง | \v | เลื่อนลงไปยังจุดหยุดแท็บแนวตั้งถัดไป | ||
| ^L | 12 | 0 องศาเซลเซียส | FE 4 , FF, NP [ d ] | ␌ | ฟีดแบบฟอร์ม | \f | เลื่อนลงไปด้านบนสุดของหน้าถัดไป | ||
| ^M | 13 | 0D | FE 5 , CR | ␍ | การส่งคืนรถขนส่ง | \r | เลื่อนไปยังคอลัมน์ที่ศูนย์โดยยังคงอยู่บนบรรทัดเดิม | ||
| ^N | 14 | 0E | SO, LS 1 [ 13 ] [ e ] | ␎ | เลิกงาน | เปลี่ยนไปใช้ชุดอักขระอื่น | |||
| ^O | 15 | 0F | SI, LS 0 [ 13 ] [ e ] | ␏ | การเปลี่ยนแปลงใน | กลับไปใช้ชุดอักขระปกติหลังจาก SO | |||
| ^P | 16 | 10 | TC 7 , DC 0 , [ f ] DLE | ␐ | การหลุดออกจากลิงก์ข้อมูล | ทำให้ตัวอักษรที่ต่อเนื่องกันจำนวนจำกัดถูกตีความในรูปแบบที่แตกต่างกัน[ 15 ] [ 16 ] | |||
| ^Q | 17 | 11 | ดีซี1 , เอ็กซ์ออน | ␑ | การควบคุมอุปกรณ์หนึ่ง | เปิด (DC 1และ DC 2 ) หรือปิด (DC 3และ DC 4 ) อุปกรณ์ Teletype [ 7 ]ใช้สิ่งเหล่านี้สำหรับเครื่องอ่านเทปกระดาษและเครื่องเจาะเทปกระดาษ การใช้งานครั้งแรกกลายเป็นมาตรฐานโดยพฤตินัยสำหรับ การ ควบคุมการไหลของซอฟต์แวร์[ 17 ] | |||
| ^R | 18 | 12 | ดีซี2เทป | ␒ | การควบคุมอุปกรณ์สอง | ||||
| ^S | 19 | 13 | DC 3 , XOFF | ␓ | การควบคุมอุปกรณ์ที่สาม | ||||
| ^T | 20 | 14 | ␔ | การควบคุมอุปกรณ์สี่ | |||||
| ^U | 21 | 15 | TC 8 , NAK | ␕ | ยอมรับเชิงลบ | การตอบสนองเชิงลบต่อผู้ส่ง เช่น การตรวจพบข้อผิดพลาด | |||
| ^V | 22 | 16 | TC 9 , SYN | ␖ | การทำงานแบบซิงโครนัส | ส่งในระบบส่งสัญญาณแบบซิงโครนัสเมื่อไม่มีการส่งอักขระอื่นใดอยู่ด้วย | |||
| ^W | 23 | 17 | TC 10 , ETB | ␗ | สิ้นสุดบล็อกการส่งข้อมูล | จุดสิ้นสุดของบล็อกข้อมูลเมื่อข้อมูลถูกแบ่งออกเป็นบล็อกดังกล่าวเพื่อวัตถุประสงค์ในการส่ง | |||
| ^X | 24 | 18 | สามารถ | ␘ | ยกเลิก | บ่งชี้ว่าข้อมูลก่อนหน้านี้ผิดพลาดหรือควรละเลย | |||
| ^Y | 25 | 19 | อีเอ็ม | ␙ | สิ้นสุดสื่อ | ระบุบนกระดาษหรือเทปแม่เหล็กว่าถึงจุดสิ้นสุดของส่วนที่ใช้งานได้ของเทปแล้ว[ 4 ] | |||
| ^Z | 26 | 1A | ซับ | ␚ | ทดแทน | แทนที่อักขระที่ตรวจพบว่าไม่ถูกต้องหรือมีข้อผิดพลาดควรละเว้นข้อความนี้ | |||
| ^[ | 27 | 1บี | เอสเอส | ␛ | หนี | [ g ] | เปลี่ยนแปลงความหมายของไบต์จำนวนจำกัดที่ตามมาปัจจุบันมักใช้เพื่อแนะนำ ลำดับการหลีกเลี่ยง แบบ ANSI | ||
| ^\ | 28 | 1ซี | IS 4 , FS | ␜ | ตัวคั่นไฟล์ | สามารถใช้เป็นตัวคั่นเพื่อกำหนดขอบเขตของโครงสร้างข้อมูลได้ โดย US เป็นระดับต่ำสุด ขณะที่ RS, GS และ FS เป็นระดับที่สูงขึ้นเรื่อยๆ เพื่อแบ่งกลุ่มที่ประกอบด้วยรายการในระดับที่ต่ำกว่า ส่วน SP (ช่องว่าง) อาจถือได้ว่าเป็นระดับที่ต่ำกว่านั้นอีก | |||
| ^] | 29 | 1D | IS 3 , GS | ␝ | ตัวคั่นกลุ่ม | ||||
| ^^ | 30 | 1E | IS 2 , RS | ␞ | ตัวคั่นระเบียน | ||||
| ^_ | 31 | 1F | IS 1 , สหรัฐอเมริกา | ␟ | ตัวคั่นหน่วย | ||||
| แม้ว่าตัวอักษรสองตัวต่อไปนี้จะไม่ได้เป็นส่วนหนึ่งของกลุ่มอักขระควบคุม C0 อย่างเป็นทางการ แต่ก็อาจถือได้ว่ามีลักษณะบางอย่างของอักขระควบคุมในระบบเก่ามาก ๆ | |||||||||
| 32 | 20 | เอสพี | ␠ | ช่องว่าง | บนเครื่องพิมพ์ ข้อความจะเลื่อนไปทางขวาหนึ่งตำแหน่ง เนื่องจากไม่มีตัวเลือกในการ "ลบ" ข้อความที่พิมพ์แล้ว ส่วนเครื่องแสดงผลจะถือว่านี่เป็นอักขระเว้นวรรค จึงเขียนทับอักขระที่มีอยู่ด้วยอักขระเว้นวรรคจากตารางอักขระ | ||||
| ^? | 127 | 7F | เดล | ␡ | ลบ | ใช้สำหรับลบตัวอักษรบนเทปเจาะรู โดยการเจาะรูทั้งหมดออก ในกรณีอื่นๆ ควรละเว้นการใช้งานฟังก์ชันนี้ | |||
- ^ Teletypeระบุคีย์ WRU สำหรับ 'คุณคือใคร?' [ 7 ]
- ^ชื่อ 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 ]
- ^ MS-DOS และระบบปฏิบัติการที่พัฒนาต่อยอดจาก MS-DOS เรียกสิ่งนี้ว่า TAB ตามตารางในคู่มือช่วยเหลือของ QBASIC ความหมายจึงเหมือนกัน คือ การจัดเรียงตาราง (แนวนอน)
- ^ MS-DOS และระบบปฏิบัติการที่พัฒนาต่อยอดจาก MS-DOS เรียกสิ่งนี้ว่า NP (Next Page) ตามตารางในคู่มือช่วยเหลือของ QBASIC ความหมายก็เหมือนกัน คือ เลื่อนลงไปด้านบนของหน้าถัดไป
- ^ a b ISO/IEC 2022 (ECMA-35) อ้างถึงสิ่งเหล่านี้เป็น LS0 และ LS1 ในสภาพแวดล้อม 8 บิต และเป็น SI และ SO ในสภาพแวดล้อม 7 บิต[ 13 ]
- ^ ASCII ฉบับแรกในปี 1963 จัดประเภท DLEเป็นการควบคุมอุปกรณ์ แทนที่จะเป็นการควบคุมการส่งข้อมูล และให้ตัวย่อว่า DC0 ("การควบคุมอุปกรณ์ที่สงวนไว้สำหรับการหลุดออกจากลิงก์ข้อมูล") [ 14 ]
- ^ ลำดับการหลีกเลี่ยง ' \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 ที่เป็นที่รู้จักกันดีสำหรับอักขระเหล่านี้เช่นกัน
เอสซีเอส+ | ทศนิยม | เฮกซ์ | ตัวย่อ | ชื่อ | คำอธิบาย[ 28 ] |
|---|---|---|---|---|---|
| @ | 128 | 80 | PAD [ 10 ] | อักขระเว้นระยะ[ b ] | เสนอให้เป็น "ส่วนเติม" หรือ "ไบต์สูง" สำหรับอักขระไบต์เดียวเพื่อให้มีความยาวสองไบต์เพื่อการทำงานร่วมกันได้ง่ายขึ้นกับอักขระหลายไบต์รหัส Unix แบบขยาย (EUC) บางครั้งก็ใช้สิ่งนี้[ 32 ] |
| เอ | 129 | 81 | HOP [ 10 ] | ค่าที่ตั้งไว้ล่วงหน้าสำหรับอ็อกเทตสูง[ b ] | เสนอให้กำหนดค่าไบต์สูงสุดของลำดับอักขระหลายไบต์เพื่อให้แต่ละตัวใช้เพียงหนึ่งไบต์เท่านั้น ซึ่งเป็นรูปแบบการบีบอัดข้อมูลอย่างง่าย |
| บี | 130 | 82 | บีเอฟพี | อนุญาตให้หยุดพักตรงนี้[ c ] | ตามหลังอักขระกราฟิกที่อนุญาตให้ขึ้นบรรทัดใหม่ได้ คล้ายกับเครื่องหมายยัติภังค์หรือช่องว่างที่มีความกว้างเป็นศูนย์แต่ไม่ได้กำหนดว่าจะพิมพ์อะไรเมื่อขึ้นบรรทัดใหม่ |
| ซี | 131 | 83 | เอ็นบีเอช | ห้ามหยุดพักตรงนี้[ c ] | เป็นไปตามลักษณะกราฟิกที่ไม่สามารถแตกหักได้ ดูเพิ่มเติมที่ตัวเชื่อมคำ (word joiner ) |
| ดี | 132 | 84 | อินเดีย | ดัชนี[ d ] | เลื่อนลงมาหนึ่งบรรทัดโดยไม่เลื่อนในแนวนอน เพื่อขจัดความกำกวมเกี่ยวกับความหมายของ LF |
| อี | 133 | 85 | เอ็นแอล | บรรทัดถัดไป | เทียบเท่ากับ CR+LF เพื่อให้ตรงกับอักขระควบคุม ของ EBCDIC |
| เอฟ | 134 | 86 | เอสเอสเอ | จุดเริ่มต้นของพื้นที่ที่เลือก | ใช้โดยเทอร์มินัลแบบบล็อกในxtermESC Fจะย้ายไปที่มุมล่างซ้ายของหน้าจอ เนื่องจากซอฟต์แวร์บางตัวถือว่ามีพฤติกรรมนี้[ 35 ] |
| จี | 135 | 87 | อีเอสเอ | สิ้นสุดพื้นที่ที่เลือก | |
| ชม | 136 | 88 | เอชทีเอส |
| ตั้งตัวหยุดแท็บไว้ที่ตำแหน่งปัจจุบัน |
| ฉัน | 137 | 89 | เอชทีเจ |
| จัดข้อความชิดขวา โดยเริ่มจากแท็บสุดท้ายจนถึงจุดหยุดแท็บถัดไป |
| เจ | 138 | 8A | วีทีเอส |
| ตั้งค่าจุดหยุดแท็บแนวตั้ง |
| เค | 139 | 8B | พีแอลดี |
| เพื่อสร้างตัวห้อยและตัวยกในมาตรฐาน ISO/IEC 6429ตัวห้อยใช้ส่วนตัวยกใช้. PLD text PLUPLU text PLD |
| แอล | 140 | 8C | พีแอลยู |
| |
| เอ็ม | 141 | 8D | ไออาร์ไอ |
| เลื่อนขึ้นไปหนึ่งบรรทัด |
| เอ็น | 142 | 8E | เอสเอส2 | กะเดียว 2 | ตัวละครถัดไปมาจากชุด G2 หรือ G3 ตามลำดับ |
| โอ | 143 | 8F | เอสเอส3 | กะเดียว 3 | |
| พี | 144 | 90 | ดีซีเอส | สตริงควบคุมอุปกรณ์ | ตามด้วยสตริงของอักขระที่พิมพ์ได้ (0x20 ถึง 0x7E) และเอฟเฟกต์รูปแบบ (0x08 ถึง 0x0D) สิ้นสุดด้วย ST (0x9C) Xtermได้กำหนดสิ่งเหล่านี้ไว้จำนวนหนึ่ง[ 36 ] |
| คิว | 145 | 91 | พียู1 | สำหรับใช้ส่วนตัว 1 | สงวนไว้สำหรับการใช้งานส่วนตัวตามที่ผู้ส่งและผู้รับข้อมูลตกลงกันไว้ |
| อาร์ | 146 | 92 | พียู2 | สำหรับใช้ส่วนตัว 2 | |
| เอส | 147 | 93 | เอสทีเอส | ตั้งค่าสถานะการส่ง | |
| ที | 148 | 94 | ซีเอช | ยกเลิกอักขระ | ปุ่มลบแบบทำลายล้าง เพื่อขจัดความกำกวมเกี่ยวกับความหมายของ BS |
| ยู | 149 | 95 | เอ็มดับเบิลยู | ข้อความกำลังรอ | |
| วี | 150 | 96 | สปา | จุดเริ่มต้นของพื้นที่คุ้มครอง | ใช้โดย เทอ ร์ มินัลแบบบล็อก |
| ว | 151 | 97 | EPA | สิ้นสุดพื้นที่คุ้มครอง | |
| X | 152 | 98 | เอสโอเอส | เริ่มต้นสตริง[ c ] | ตามด้วยสตริงควบคุมที่ลงท้ายด้วยST (0x9C) ซึ่ง (ต่างจากDCS , OSC , PMหรือAPC ) อาจมีอักขระใดก็ได้ยกเว้น SOS หรือ ST |
| วาย | 153 | 99 | SGC, [ 10 ] SGCI [ 37 ] | ตัวแนะนำอักขระกราฟิกเดี่ยว[ b ] | มีจุดประสงค์เพื่อให้สามารถพิมพ์อักขระUnicode ใดๆ ก็ได้ โดยจะตามด้วย 4 ไบต์เพื่อกำหนดจุดรหัส 32 บิต ซึ่งส่วนใหญ่จะเป็นแบบ big-endian [ 37 ] |
| ซ | 154 | 9A | เอสซีไอ | ตัวแนะนำอักขระเดี่ยว[ c ] | ตามด้วยอักขระที่พิมพ์ได้ตัวเดียว (0x20 ถึง 0x7E) หรือตัวจัดรูปแบบ (0x08 ถึง 0x0D) และพิมพ์เป็น ASCII โดยไม่คำนึงถึงว่าใช้ชุดกราฟิกหรือชุดควบคุมใดอยู่ |
| [ | 155 | 9B | ซีเอสไอ | ตัวแนะนำลำดับควบคุม | ใช้สำหรับแนะนำลำดับควบคุมที่รับพารามิเตอร์ ใช้สำหรับลำดับหลีกเลี่ยงตามมาตรฐาน ANSI |
| \ | 156 | 9C | ส. | ตัวจบสตริง | ยุติสายสนทนาที่เริ่มต้นโดย DCS , SOS , OSC , PMหรือAPC |
| ] | 157 | 9D | โอเอสซี | คำสั่งระบบปฏิบัติการ | ตามด้วยสตริงของอักขระที่พิมพ์ได้ (0x20 ถึง 0x7E) และตัวจัดรูปแบบ (0x08 ถึง 0x0D) ปิดท้ายด้วย ST (0x9C) ซึ่งมีจุดประสงค์เพื่ออนุญาตให้ส่งสัญญาณข้อมูลโปรโตคอลภายในแบนด์ แต่ไม่ค่อยได้ใช้เพื่อวัตถุประสงค์นั้น โปรแกรมจำลองเทอร์มินัลบางตัวรวมถึงxtermใช้ลำดับ OSC สำหรับการตั้งค่าชื่อหน้าต่างและการเปลี่ยนจานสี นอกจากนี้ยังอาจรองรับการยุติลำดับ OSC ด้วยBELแทน ST [ 38 ] Kermitใช้ APC ในการส่งคำสั่ง[ 39 ] Kittyใช้ APC ในการเรนเดอร์กราฟิกโดยใช้ Kitty Graphics Protocol [ 40 ] |
| ^ | 158 | 9E | นายกรัฐมนตรี | ข้อความเกี่ยวกับความเป็นส่วนตัว | |
| _ | 159 | 9F | เอพีซี | คำสั่งโปรแกรมแอปพลิเคชัน |
- ^ในเวอร์ชันแรกๆ ช่วงดังกล่าวไม่รวม SPและ DEL [ 20 ]
- ^ a b cไม่เป็นส่วนหนึ่งของ ISO/IEC 6429 (ECMA-48) [ 9 ] [ 27 ] [ 29 ] : 4 [ 30 ] : 5 [ 31 ] : 8
- ^ a b c dไม่เป็นส่วนหนึ่งของ ISO/IEC 6429 ฉบับแรก[ 24 ] [ 29 ] : 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เป็น
ดูเพิ่มเติม
- ภาพควบคุม - อักขระแสดงผลกราฟิกแบบยูนิโค้ดสำหรับรหัสควบคุม C0
- รหัสหลีกเลี่ยง ANSI
เชิงอรรถ
- ^ 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
สรุปเนื้อหา
ข้อมูลสำคัญจากบทความ
ข้อมูลสำคัญเกี่ยวกับ รหัสควบคุม 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 ]