ทำไมข้อความแสดง “&” และวิธีแก้
เผยแพร่เมื่อ · อัปเดตเมื่อ อ่าน 1 นาที
เมื่อข้อความแสดง “&” แทน “&” แสดงว่า HTML เอนทิตีถูกเข้ารหัสเกินไปหนึ่งครั้ง เครื่องมือถอดรหัสทีละหนึ่งระดับและบอกคุณเมื่อยังเหลืออยู่
HTML เอนทิตีคืออะไร
เอนทิตีคือลำดับของเครื่องหมายที่แทนอักขระที่สงวนไว้สำหรับโค้ดของหน้า ที่พบบ่อยมีห้าตัว
| อักขระ | เอนทิตี |
|---|---|
| & | & |
| < | < |
| > | > |
| " | " |
| ' (อะพอสทรอฟีตรง) | ' |
การเข้ารหัสซ้ำมาจากไหน
ข้อความบางครั้งผ่านระบบสองระบบที่เข้ารหัสทั้งคู่ คือโปรแกรมแก้ไข แล้วแม่แบบของหน้า แต่ละรอบเปลี่ยน “&” ของเอนทิตีก่อนหน้า ด้วย เข้ารหัสและถอดรหัส HTML เอนทิตี การเข้ารหัส “Tom & Jerry” ได้ “Tom & Jerry” แล้วเข้ารหัสผลลัพธ์นั้นอีกได้ “Tom &amp; Jerry”
| ขั้นตอน | ข้อความที่ได้ |
|---|---|
| ข้อความต้นฉบับ | Tom & Jerry |
| เข้ารหัสหนึ่งครั้ง | Tom & Jerry |
| เข้ารหัสสองครั้ง | Tom &amp; Jerry |
เบราว์เซอร์ถอดรหัสหนึ่งระดับเมื่อแสดงผล ข้อความที่เข้ารหัสสองครั้งจึงแสดง “&” แทน “&”
ถอดรหัสทีละระดับ
เครื่องมือเอาเอนทิตีออกเพียงหนึ่งระดับในแต่ละรอบ หากผลลัพธ์ยังมีเอนทิตีอยู่ โหมด “ทั้งสอง” จะแจ้ง และคุณถอดรหัสซ้ำกับผลลัพธ์
| ข้อความ | การถอดรหัสครั้งแรก | การถอดรหัสครั้งที่สอง |
|---|---|---|
| Tom &amp; Jerry | Tom & Jerry | Tom & Jerry |
| &lt;b&gt;gras&lt;/b&gt; | <b>gras</b> | <b>gras</b> |
การถอดรหัสทีละระดับช่วยไม่ให้ยกเลิกการเข้ารหัสที่ตั้งใจ ตัวอย่างโค้ดที่ต้องแสดง “&” บนหน้าจอเขียนเป็น “&amp;” ในหน้า
เครื่องหมายกำกับและสัญลักษณ์
การถอดรหัสเข้าใจเอนทิตีที่มีชื่อทั้งหมดที่ลงท้ายด้วยอัฒภาค ไม่ใช่เฉพาะห้าตัวปกติ “café à 5 € © 2026” ให้ “café à 5 € © 2026” โดยช่องว่างไม่ตัดบรรทัดกลายเป็นช่องว่างไม่ตัดบรรทัดจริง
เอนทิตีตัวเลข
เอนทิตีตัวเลขก็ถูกถอดรหัสด้วย “été” ให้ “été” และ “😀” กับ “😀” ให้อีโมจิเดียวกัน
สิ่งที่เครื่องมือเว้นไว้
- เอนทิตีที่ไม่รู้จัก เช่น “&inconnue;” คงไว้ตามเดิม
- เอนทิตีที่ไม่มีอัฒภาคปิดท้าย เช่น “&” หรือ “<” ในประโยค จะไม่ถูกแตะ
- ที่อยู่ที่มีพารามิเตอร์ เช่น “https://exemple.fr/?a=1¶m=2©=4” ยังคงถูกต้อง “¶m” และ “©” ไม่ถูกมองเป็นเอนทิตีในที่นั้น
เข้ารหัสโค้ดเพื่อแสดง
หากต้องการแสดงส่วนของโค้ดในหน้า ให้เข้ารหัสเพียงครั้งเดียว ข้อความ “<a href="x">l’été & plus</a>” ให้ “<a href="x">l'été & plus</a>” ตัวอักษรที่มีเครื่องหมายกำกับไม่ถูกเข้ารหัส มีเพียงห้าอักขระสงวนเท่านั้น
หลีกเลี่ยงปัญหา
เข้ารหัสเพียงครั้งเดียว ในวินาทีสุดท้ายเมื่อเขียนลงในหน้า หากต้องการแทนที่ส่วนที่เหลือจากการเข้ารหัสผิดพลาดเป็นกลุ่ม ค้นหาและแทนที่ เหมาะสม ที่อยู่เว็บใช้การเข้ารหัสอีกแบบ อธิบายไว้ใน อย่าสับสนระหว่าง Base64 แฮช และที่อยู่ที่เข้ารหัส
ตรวจสอบผลลัพธ์
- ถอดรหัสซ้ำตราบใดที่เครื่องมือยังแจ้งว่ามีเอนทิตีเหลืออยู่
- เปรียบเทียบกับข้อความต้นฉบับบนหน้าจอ
- ตรวจสอบช่องว่างไม่ตัดบรรทัดและอีโมจิ
