ไทย

เครื่องมือสำหรับนักพัฒนา · HTML ตัวหนีเอนทิตี

เหตุใด แสดงผลเป็นเส้นประ: HTML Windows-1252 เอนทิตีที่แปลกประหลาด

· พื้นหลัง

html ยูนิโค้ด ความเข้ากันได้

เหตุใดสัญกรณ์เอนทิตีจึงแสดงผลเป็นเส้นประ: HTMLของ Windows-1252 ลักษณะเฉพาะของเอนทิตีที่แสดงเป็นไดอะแกรมอ้างอิงอักขระที่ปลอดภัยสำหรับเบราว์เซอร์
ภาพประกอบเวกเตอร์ต้นฉบับ ToolAcre

จุดโค้ด 128–159 เป็นอักขระควบคุมในรูปแบบ Unicode แต่เบราว์เซอร์จะแสดงผล เป็นเครื่องหมายขีดกลาง โพสต์นี้จะอธิบายการแมป Windows-1252 ที่ HTML เป็นมาตรฐานสำหรับความเข้ากันได้ โดยที่เอนทิตีดังกล่าวมาจากไหน และวิธีการปรับปรุงให้ทันสมัย

เครื่องหมายขีดกลางที่เป็นอักขระควบคุม — พบกับ และ ในเนื้อหาที่ถูกย้าย และสงสัยว่าเหตุใดจึงแสดงผลเลย

เครื่องหมายขีดกลางที่เป็นอักขระควบคุม — พบกับ และ ในเนื้อหาที่ถูกย้าย และสงสัยว่าเหตุใดจึงแสดงผลเลย เนื้อหาแบบเดิมอาจมี คาดหวังเครื่องหมายขีดกลาง และ คาดหวังเครื่องหมายอะพอสทรอฟี่แบบโค้ง การอ่านตัวเลขเหล่านั้นเป็นตัวควบคุม Unicode ธรรมดาจะสร้างเอาต์พุตที่มองไม่เห็นหรือรบกวน

หากต้องการตรวจสอบอักขระ ให้สร้างเครื่องหมายขีดกลางเพื่อให้นักพัฒนาเห็นขีดกลางและเครื่องหมายคำพูดที่ไม่ถูกต้องในเนื้อหาที่ย้ายมาจากเอกสารเก่า รักษาเป็นอักขระควบคุมในขณะที่ความเข้ากันได้ของ Windows-1252 สร้างการประชุม 150 และ 146; ระบุตำแหน่งในเนื้อหาที่ถูกย้ายและถูกใช้ไป การสังเกตเกี่ยวกับการสงสัยว่าเหตุใดจึงแสดงผลเป็นของ HTML ข้อความเท่านั้น

ช่วงการควบคุม C1 — U+0080–U+009F คืออะไร และเหตุใดจึงไม่สามารถพิมพ์ข้อความได้

ช่วงการควบคุม C1 — U+0080–U+009F คืออะไร และเหตุใดจึงไม่สามารถพิมพ์ข้อความได้ ช่วง C1 U+0080 ถึง U+009F ถูกสงวนไว้สำหรับฟังก์ชันควบคุม แทนที่จะเป็นตัวพิมพ์ทั่วไปที่พิมพ์ได้ สัญลักษณ์ที่น่าประหลาดใจนั้นมาจากการแมปความเข้ากันได้ ไม่ใช่จุดรหัสที่ระบุ

นักพัฒนาที่เห็นขีดกลางและเครื่องหมายคำพูดผิดในเนื้อหาที่ย้ายจากเอกสารเก่าสามารถทดสอบช่วงการควบคุม c1 ได้โดยบันทึกสิ่งที่คุณ 0080 u ก่อนที่ความเข้ากันได้ของ Windows-1252 จะผ่าน เปรียบเทียบ 009f ควรจะหลังจากนั้นและค้นหา parser ที่รับผิดชอบและทำไมพวกเขา ผลลัพธ์อักขระ นี้อธิบายว่าไม่ใช่ข้อความที่สามารถพิมพ์ได้ ไม่ใช่บริบทที่ปฏิบัติการได้

ตัวเลขมาจากไหน — ค่า Windows-1252 byte วางลงใน HTML โดยโปรแกรมประมวลผลคำและบรรณาธิการรุ่นแรกๆ

ที่มาของตัวเลข — ค่า Windows-1252 byte วางลงใน HTML โดยโปรแกรมประมวลผลคำและบรรณาธิการรุ่นแรกๆ เวิร์กโฟลว์การเขียนรุ่นเก่าถือว่าค่า Windows-1252 byte เหมือนกับว่าเป็นตัวเลข Unicode HTML ที่ย้ายแล้วจะรักษาการอ้างอิงทศนิยมเหล่านั้นไว้นานหลังจากที่เอกสารย้ายไปใช้การเข้ารหัส Unicode

แยกที่มาของตัวเลขด้วยตัวอย่างความเข้ากันได้ของ Windows-1252 สั้นๆ แสดงจาก windows 1252 byte เป็นแหล่งตามตัวอักษร ติดตามค่าที่วางลงใน html ไปยังปลายทาง และตั้งชื่อ API ที่อ่านโดยโปรแกรมประมวลผลคำและ สำหรับอักขระ ผู้แก้ไขในยุคแรกยังคงมีหลักฐานที่ผูกพันกับพาร์เซอร์

การแมปความเข้ากันได้ใหม่ - วิธีที่อัลกอริทึมการแยกวิเคราะห์ HTML จับคู่การอ้างอิงเหล่านี้กับอักขระ Windows-1252

การแมปความเข้ากันได้ใหม่ - วิธีที่อัลกอริทึมการแยกวิเคราะห์ HTML จับคู่การอ้างอิงเหล่านี้กับอักขระ Windows-1252 ตัวถอดรหัสประกอบด้วยแผนที่ Windows-1252 ที่ชัดเจน โดยจะเปลี่ยนค่าที่เลือกก่อน String.fromCodePoint โดยจับคู่ผลลัพธ์ที่เข้ากันได้กับเบราว์เซอร์ เช่น ทศนิยม 151 ให้เป็น em dash

ถือว่าการแมปความเข้ากันได้ใหม่เป็นการทดสอบขอบเขต นักพัฒนาที่เห็นเครื่องหมายขีดกลางและเครื่องหมายคำพูดไม่ถูกต้องในเนื้อหาที่ย้ายมาจากเอกสารเก่าควรคงอัลกอริทึมการแยกวิเคราะห์ html ไว้ ดำเนินการความเข้ากันได้กับ Windows-1252 หนึ่งครั้ง และตรวจสอบแมปการอ้างอิงเหล่านี้กับอักขระทีละอักขระ ก่อนที่จะเปลี่ยนอักขระ windows 1252 การอ้างสิทธิ์เกี่ยวกับหลักฐานความเข้ากันได้ของ Windows-1252 หยุดที่เลเยอร์ HTML นี้

ตัวอย่างการทำงาน: การแปล และ ถึง เป็นอักขระที่ต้องการ — จุดไข่ปลา เครื่องหมายคำพูด หัวข้อย่อย ขีดกลาง และเครื่องหมายการค้า

ตัวอย่างการทำงาน: การแปล และ ถึง เป็นอักขระที่ต้องการ เช่น จุดไข่ปลา เครื่องหมายคำพูด สัญลักษณ์แสดงหัวข้อย่อย ขีดกลาง และเครื่องหมายการค้า ตัวอย่างที่คำนวณจากตาราง ได้แก่ ถึงจุดไข่ปลา, ถึงเครื่องหมายคำพูดเดี่ยวด้านซ้าย, ถึงเครื่องหมายคำพูดเดี่ยวด้านขวา, ถึงสัญลักษณ์แสดงหัวข้อย่อย, ถึงเครื่องหมายขีดกลาง และ ถึงเครื่องหมายการค้า

สร้างตัวอย่างการทำงานที่แปล 133 ด้วยอินพุตที่ไม่เป็นอันตราย แทนที่จะแปลเนื้อหาของลูกค้า บันทึกและ 145 ถึง 153 สังเกตอักขระที่ต้องการ และนับทุกการส่งผ่านความเข้ากันได้ของ Windows-1252 โดยเจตนา เส้นทางอักขระ นั้นช่วยให้นักพัฒนาเห็นขีดกลางและเครื่องหมายคำพูดที่ไม่ถูกต้องในเนื้อหาที่ย้ายจากเอกสารเก่าประเมินเครื่องหมายจุดไข่ปลาเครื่องหมายแสดงหัวข้อย่อยและเครื่องหมายการค้าโดยไม่ต้องเดา

ปรับปรุงเนื้อหาให้ทันสมัย ​​— แทนที่ด้วยจุดโค้ดที่ถูกต้องหรืออักขระใน UTF-8

ปรับปรุงเนื้อหาให้ทันสมัย ​​— แทนที่ด้วยจุดโค้ดที่ถูกต้องหรืออักขระใน UTF-8 ปรับปรุงให้ทันสมัยโดยการแทนที่การอ้างอิงแบบเดิมด้วยอักขระ Unicode ที่ต้องการหรือการอ้างอิงตัวเลข Unicode ที่ถูกต้อง เก็บรักษาต้นฉบับในระหว่างการย้ายข้อมูล เพื่อให้ข้อมูลประวัติที่คลุมเครือยังคงสามารถตรวจสอบได้

วางการปรับปรุงเนื้อหาให้ทันสมัยโดยแทนที่ด้วยโค้ดที่ถูกต้อง และจุดหรืออักขระเคียงข้างกันในระหว่างการตรวจสอบความเข้ากันได้ของ Windows-1252 นักพัฒนาซอฟต์แวร์เห็นขีดกลางและเครื่องหมายคำพูดไม่ถูกต้องในเนื้อหาที่ย้ายมาจากเอกสารเก่า จะสามารถตัดสินใจได้ว่าตนเองใน utf 8 มีการเปลี่ยนแปลงที่การแปลงหรือดาวน์สตรีมหรือไม่ เก็บบทสรุปอักขระ เกี่ยวกับหลักฐานความเข้ากันได้ของ Windows-1252 จากการกล่าวอ้างด้านความปลอดภัยทั่วไป

สิ่งนี้ไม่ครอบคลุมถึง MacRoman และโค้ดเพจแบบเดิมอื่นๆ และการแปลงเอกสารฉบับสมบูรณ์

สิ่งนี้ไม่ครอบคลุมถึง MacRoman และโค้ดเพจแบบเดิมอื่นๆ และการแปลงเอกสารฉบับเต็ม MacRoman และโค้ดเพจอื่นๆ ต้องใช้ตารางการแปลงที่แตกต่างกัน และไม่ได้สรุปไว้ที่นี่ การแปลงเอกสารแบบเต็มจำเป็นต้องมีข้อมูลเมตาการเข้ารหัสที่มาที่น่าเชื่อถือและการจัดการระดับไบต์

กำหนดสิ่งที่ไม่มีก่อนที่จะรันความเข้ากันได้ของ Windows-1252 บันทึก Macroman ปกและอื่นๆ ไว้เป็นตัวควบคุม ตรวจสอบจุดโค้ดที่อยู่ด้านหลังโค้ดเพจแบบเดิม และและแมปการแปลงเอกสารฉบับเต็มไปยังล่ามคนถัดไป สิ่งนี้ทำให้หลักฐานความเข้ากันได้ของ Windows-1252 สามารถตรวจสอบได้สำหรับนักพัฒนาที่เห็นขีดกลางและเครื่องหมายคำพูดที่ไม่ถูกต้องในเนื้อหาที่ย้ายมาจากเอกสารเก่าที่ตรวจสอบอักขระ

ประเด็นสำคัญ: พฤติกรรมแปลกๆ ของเบราว์เซอร์ที่เก็บรักษาไว้ตามจุดประสงค์ — วิธีที่ตัวถอดรหัสของเอนทิตี Escaper HTML แสดงสิ่งที่การอ้างอิงตัวเลขแก้ไขได้ และตำแหน่งที่หน้าเครื่องมือระบุว่าจะปฏิบัติต่อช่วงนี้อย่างไร

ประเด็นสำคัญ: พฤติกรรมแปลกๆ ของเบราว์เซอร์ที่เก็บรักษาไว้โดยตั้งใจ — วิธีที่ตัวถอดรหัสของเอนทิตี Escaper HTML แสดงสิ่งที่การอ้างอิงตัวเลขแก้ไขได้ และตำแหน่งที่หน้าเครื่องมือระบุว่าจะปฏิบัติต่อช่วงนี้อย่างไร พฤติกรรมนี้เป็นความเข้ากันได้โดยเจตนา ไม่ใช่อัตลักษณ์ทางคณิตศาสตร์ ToolAcre เปิดเผยอักขระที่ได้รับการแก้ไขโดยใช้การแมปคงที่แบบเดียวกันซึ่งครอบคลุมโดยการทดสอบหน่วยสำหรับ 151 และ 146

เชื่อมต่อพฤติกรรมแปลกๆ ของเบราว์เซอร์เข้ากับเอาต์พุตความเข้ากันได้ของ Windows-1252 ที่สังเกตได้ เก็บรักษาไว้โดยมีจุดประสงค์ว่าข้างผลลัพธ์แบบส่งครั้งเดียว จากนั้นตรวจสอบว่าที่ตัวหนีเอนทิตี html เข้าสู่ตัวถอดรหัสแสดงอะไร นักพัฒนาที่เห็นขีดกลางและเครื่องหมายคำพูดไม่ถูกต้องในเนื้อหาที่ย้ายจากเอกสารเก่าสามารถตรวจสอบการแก้ไขการอ้างอิงที่เป็นตัวเลขเป็นการค้นหาอักขระ แบบแคบได้ การตัดสินใจเชิงปฏิบัติเบื้องหลังบทความนี้มีความเฉพาะเจาะจง: จุดโค้ด 128–159 เป็นอักขระควบคุมใน Unicode แต่เบราว์เซอร์จะแสดงผล เป็นเครื่องหมายขีดกลาง โพสต์นี้จะอธิบายการแมป Windows-1252 ที่ HTML เป็นมาตรฐานสำหรับความเข้ากันได้ โดยที่เอนทิตีดังกล่าวมาจากไหน และวิธีการปรับปรุงให้ทันสมัย การทำงานของผู้อ่านมีความเป็นรูปธรรมเท่าเทียมกัน: ลิงก์ไปยัง Escape เอนทิตี HTML ซึ่งเป็นที่สำหรับถอดรหัสการอ้างอิงที่เป็นตัวเลขจากเนื้อหาแบบเดิม โดยมีตัวชี้ไปยัง 'บันทึกทางเทคนิค' ของหน้าเครื่องมือสำหรับการจัดการช่วง 128–159