รูปแบบการเข้ารหัส ANSI คืออะไร เป็นรูปแบบเริ่มต้นของระบบหรือไม่ ASCII แตกต่างจากอะไร?
รูปแบบการเข้ารหัส ANSI คืออะไร เป็นรูปแบบเริ่มต้นของระบบหรือไม่ ASCII แตกต่างจากอะไร?
คำตอบ:
การเข้ารหัส ANSI เป็นคำทั่วไปที่ใช้เพื่ออ้างถึงหน้ารหัสมาตรฐานในระบบซึ่งโดยปกติคือ Windows มันถูกเรียกว่าWindows-1252บนระบบ Western / US (มันสามารถเป็นตัวแทนของหน้ารหัส Windowsอื่น ๆ บางอย่างในระบบอื่น ๆ ) นี่เป็นส่วนขยายของชุดอักขระ ASCIIที่มันรวมถึงตัวอักษร ASCII ทั้งหมดที่มี 128 ตัวอักษรรหัสเพิ่มเติม ความแตกต่างนี้เกิดจากความจริงที่ว่าการเข้ารหัส "ANSI" นั้นเป็น 8 บิตแทนที่จะเป็น 7 บิตเนื่องจาก ASCII นั้นเป็น (ASCII จะถูกเข้ารหัสเกือบทุกครั้งในปัจจุบันเป็น 8 บิตด้วยการตั้งค่าMSBเป็น 0) ดูบทความสำหรับคำอธิบายว่าทำไมการเข้ารหัสนี้มักเรียกว่า ANSI
ชื่อ "ANSI" เป็นชื่อเรียกที่ไม่ถูกต้องเนื่องจากไม่ตรงกับมาตรฐาน ANSI จริงใด ๆ แต่ชื่อนั้นติดอยู่ ANSI ไม่เหมือนกับ UTF-8
windows-1254
หมายถึง
ในทางเทคนิค ANSI ควรเหมือนกับ US-ASCII มันหมายถึงมาตรฐาน ANSI X3.4 ซึ่งเป็นเพียงANSIองค์กรรุ่นที่ยอมรับของ ASCII การใช้อักขระชุดบนสุดไม่ได้กำหนดไว้ใน ASCII / ANSI เนื่องจากเป็นชุดอักขระ 7 บิต
อย่างไรก็ตามการใช้คำผิดทาง DOS เป็นระยะเวลาหลายปีและต่อมาชุมชน Windows ได้ทิ้งความหมายในทางปฏิบัติไว้เป็น“ ระบบรหัสเพจของเครื่องที่ใช้ เพจรหัสของระบบนั้นบางครั้งเรียกว่า 'mbcs' เนื่องจากในระบบเอเชียตะวันออกที่สามารถเข้ารหัสแบบหลายไบต์ต่ออักขระ หน้าโค้ดบางหน้าสามารถใช้ไบต์บนสุดเป็นบิตต่อท้ายในลำดับหลายไบต์ดังนั้นมันจึงไม่เข้มงวดกับ ASCII ธรรมดา แต่ถึงอย่างนั้นก็ยังเรียกว่า "ANSI"
สำหรับการตั้งค่าเริ่มต้นในสหรัฐอเมริกาและยุโรปตะวันตก“ ANSI” จะแมปกับรหัส Windows หน้า 1252 ซึ่งไม่เหมือนกับ ISO-8859-1 (แม้ว่าจะคล้ายกันมาก) ในเครื่องอื่นมันอาจเป็นอย่างอื่นก็ได้ สิ่งนี้ทำให้“ ANSI” ไร้ประโยชน์อย่างเต็มที่ในฐานะตัวระบุการเข้ารหัสภายนอก
พูดอย่างเคร่งครัดไม่มีสิ่งเช่นการเข้ารหัส ANSI คำศัพท์ที่ใช้ในการเข้ารหัสที่แตกต่างกันหลาย ANSI:
กาลครั้งหนึ่ง Microsoft เหมือนคนอื่น ๆ ใช้ชุดอักขระ 7 บิตและพวกเขาคิดค้นของตัวเองเมื่อมันเหมาะกับพวกเขาแม้ว่าพวกเขาจะเก็บ ASCII เป็นเซตย่อยหลัก จากนั้นพวกเขาก็ตระหนักว่าโลกได้เปลี่ยนไปใช้การเข้ารหัส 8 บิตและมีมาตรฐานสากลอยู่เช่นตระกูล ISO-8859 ในสมัยนั้นถ้าคุณต้องการได้รับมาตรฐานสากลและคุณอาศัยอยู่ในสหรัฐอเมริกาคุณซื้อจากสถาบันมาตรฐานแห่งชาติอเมริกัน ANSI ซึ่งตีพิมพ์มาตรฐานระหว่างประเทศอีกครั้งด้วยแบรนด์และหมายเลขของตัวเอง (นั่นเป็นเพราะรัฐบาลสหรัฐฯต้องการ สอดคล้องกับมาตรฐานอเมริกันไม่ใช่มาตรฐานสากล) ดังนั้นสำเนา ISO-8859 ของ Microsoft จึงกล่าวว่า "ANSI" บนหน้าปก และเนื่องจากไมโครซอฟท์ไม่ได้คุ้นเคยกับมาตรฐานในสมัยนั้นมากนักพวกเขาจึงไม่ได้ ไม่ทราบว่า ANSI ตีพิมพ์มาตรฐานอื่น ๆ มากมายเช่นกัน ดังนั้นพวกเขาจึงอ้างถึงมาตรฐานในตระกูล ISO-8859 (และตัวแปรที่พวกเขาคิดค้นเพราะพวกเขาไม่เข้าใจมาตรฐานจริง ๆ ในสมัยนั้น) โดยใช้ชื่อบนหน้าปก "ANSI" และพบวิธีใน Microsoft เอกสารผู้ใช้และจากนี้จึงเป็นชุมชนผู้ใช้ นั่นคือประมาณ 30 ปีที่แล้ว แต่บางครั้งคุณยังคงได้ยินชื่อวันนี้
ASCIIเพียงกำหนดหน้ารหัส 7 บิตที่มีสัญลักษณ์ 128 ตัว ANSI ขยายไปถึง 8 บิตและมีหน้ารหัสที่แตกต่างกันหลายอย่างสำหรับสัญลักษณ์ 128 ถึง 255
ANSI การตั้งชื่อไม่ถูกต้องเพราะจริง ๆ แล้วเป็นบรรทัดฐาน ISO / IEC 8859 ที่กำหนดหน้ารหัสนี้ ดูที่ISO / IEC 8859สำหรับการอ้างอิง มีโค้ดเพจ 16 ค่า ISO / IEC 8859-1 เป็น ISO / IEC 8859-16
Windows-1252ขึ้นอยู่กับ ISO / IEC 8859-1 อีกครั้งโดยมีการปรับเปลี่ยนส่วนใหญ่อยู่ในช่วงของชุดควบคุม C1ในช่วง 128 ถึง 159 วิกิพีเดียระบุว่า Windows-1252 นั้นอ้างถึง ISO-8859-1 ด้วยเช่นกัน เครื่องหมายขีดคั่นระหว่าง ISO และ 8859 (ไม่น่าเชื่อ! ใครทำแบบนั้น?!?)
โดยพื้นฐาน "ANSI" หมายถึงเพจรหัสดั้งเดิมบน Windows ดูบทความโดย Raymond Chenในหัวข้อนี้:
แหล่งที่มาของสิ่งนี้มาจากความจริงที่ว่าหน้ารหัสของ Windows 1252 นั้นมาจากแบบร่าง ANSI ซึ่งกลายเป็นมาตรฐาน ISO 8859-1
อักขระ 127 ตัวแรกนั้นเหมือนกับ ASCII ในหน้ารหัสส่วนใหญ่ แต่อักขระส่วนบนจะแตกต่างกันไป
อย่างไรก็ตาม ANSI ไม่ได้หมายถึง CP1252 หรือละติน 1 โดยอัตโนมัติ
ความสับสนทั้งหมดแม้ว่าคุณควรหลีกเลี่ยงปัญหาดังกล่าวในปัจจุบันและใช้ Unicode
ในกรณีที่พีซีของคุณไม่ใช่พีซี "ตะวันตก" และคุณไม่ทราบว่าจะใช้หน้ารหัสใดคุณสามารถดูที่หน้านี้: การอ้างอิงภาษาแห่งชาติ (NLS) API อ้างอิง
[Microsoft ลบการอ้างอิงนี้ให้ใช้แบบฟอร์มการอ้างอิง API แห่งชาติสนับสนุนภาษาเว็บเก็บถาวร(NLS) เว็บ
หรือคุณสามารถค้นหารีจิสตรีของคุณ:
C:\>reg query HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\Nls\CodePage /f ACP
HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\Nls\CodePage
ACP REG_SZ 1252
End of search: 1 match(es) found.
C:\>
เมื่อใช้อักขระไบต์เดียวรูปแบบ ASCII จะกำหนดอักขระ 127 ตัวแรก อักขระส่วนขยายจาก 128-255 ถูกกำหนดโดยหน้ารหัส ANSI ต่าง ๆ เพื่อให้การสนับสนุนที่ จำกัด สำหรับภาษาอื่น ๆ เพื่อให้เข้าใจถึงสตริงที่เข้ารหัส ANSI คุณต้องทราบว่าจะใช้หน้ารหัสใด
ฉันจำได้เมื่อข้อความ "ANSI" ที่อ้างถึงหลอกรหัส VT-100 ใช้งานได้ใน DOS ผ่านไดรเวอร์ ANSI.SYS เพื่อเปลี่ยนการไหลเวียนของข้อความสตรีมมิ่ง .... อาจไม่ใช่สิ่งที่คุณอ้างถึง แต่ถ้ามันเห็นhttp: //en.wikipedia.org/wiki/ANSI_escape_code
ANSI (aka ของ Windows 1252 / WinLatin1) คือการเข้ารหัสอักขระของตัวอักษรละตินค่อนข้างคล้ายกับISO-8859-1 คุณอาจต้องการที่จะใช้รูปลักษณ์ของมันที่วิกิพีเดีย