รหัสอักขระ HTML 8203 คืออะไร


128

โค้ดอักขระ (HTML) ​คืออะไร? ฉันพบมันในสคริปต์ jQuery ของฉันและสงสัยว่ามันคืออะไร ..

ขอบคุณ

แก้ไข:

นี่คือสคริปต์ที่มีอยู่ (ถูกเพิ่มเข้าไปในตอนท้ายพบได้ใน Firebug)

<script src="http://code.jquery.com/jquery-latest.js" type="text/javascript"></script>
<script type="text/javascript">
var $jnyh = jQuery.noConflict();


$jnyh(function() {
    $jnyh("#title-nyh").click(function() {
      $jnyh(".show-hide-nyh").slideDown("slow");
    }, function() {        
      if(!$jnyh(this).data('pinned'))
        $jnyh(".show-hide-nyh").slideUp("slow");
    });
    $jnyh("#title-nyh").click(function() {
    $jnyh(this).parent().toggleClass("title-btm-brdr");
       $jnyh(this).toggleClass("chev-up-result");
      var pin = $jnyh(this).data('pinned');
      $jnyh(this).data('pinned', !pin);
      if(pin) $jnyh(".show-hide-nyh").slideUp("slow");      
    });
});​&#8203;
</script>

1
ฉันพบบทความที่นี่ที่ช่วยฉัน: js ลบพื้นที่ความกว้างเป็นศูนย์ Unicode 8203 จากสตริง
Yuchi

2
น่าสนใจ ฉันเพิ่งพบว่ามันเคยทำให้ URL ของ imgur สับสนในอีเมลหลอกลวง: ii & # 8203; m & # 8203; g & # 8203; u & # 8203; r & # 8203; …
Lambart

ใช้กับคู่มือ MDN ... ตัวอย่างเช่นหากคุณต้องการคัดลอกชื่อวัตถุ javascript จากชื่อ H1 (เช่นdeveloper.mozilla.org/en-US/docs/Web/API/NodeFilter ) ให้อักขระนี้อยู่ในสตริง "NodeFilter" ระหว่างขนาดเล็ก " e "และ" F "... ดังนั้นมันจะล้มเหลวในสคริปต์ของคุณ ฉันไม่รู้ว่าทำไม Mozilla ถึงใช้มัน ... บางทีเธออาจจะเกลียดเราก็ได้: D
iiic

คำตอบ:


158

มันเป็นอักขระ Unicode 'ZERO ช่องว่างความกว้าง' (U + 200B)

อักขระนี้มีไว้สำหรับการควบคุมตัวแบ่งบรรทัด ไม่มีความกว้าง แต่การมีอยู่ระหว่างอักขระสองตัวไม่ได้ป้องกันการเพิ่มระยะห่างของตัวอักษรในเหตุผล

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


3
ขอบคุณ แปลกจังว่ามันลงเอยอย่างไรใน jQuery ของฉัน
Kyle

1
@Kyle ฉันพบอักขระนี้ในไฟล์ CSS ของฉันและมันมีแนวโน้มที่จะทำลายพวกมันทำให้เบราว์เซอร์ไม่แยกวิเคราะห์ CSS ของฉันอย่างถูกต้อง ดังนั้นฉันจะไม่แปลกใจถ้ามันอาจทำให้เกิดปัญหาในไฟล์สคริปต์
AaronLS

1
"มันต้องถูกแทรกโดยบังเอิญ" หรือเรียกอีกอย่างว่าเครื่องหมายคำสั่งไบต์
Jonathan Dickinson

8
@ Jonathan: มันมากแน่นอนไม่ได้เป็นเครื่องหมายเพื่อ byte
BalusC

3
@ โจนาธาน: ไม่ไม่ใช่ในฐานะ BOM เป็นการแสดงภาพ (mis) ของ BOM
BalusC

22

หากคุณต้องการค้นหาอักขระที่มองไม่เห็นเหล่านี้ในโปรแกรมแก้ไขของคุณและทำให้มองเห็นได้คุณสามารถใช้นิพจน์ทั่วไปค้นหาอักขระที่ไม่ใช่ ascii ได้ [^\x00-\x7F]ลองค้นหา ผ่านการทดสอบใน IntelliJ IDEA


2
เราไม่ควรแสดงความคิดเห็นเพื่อกล่าวขอบคุณ แต่สิ่งนี้มีค่ามาก คนอื่น ๆ ต้องรู้ว่านี่เป็นวิธีแก้ปัญหาที่พวกเขากำลังมองหาเมื่อพยายามล้างข้อความจากระบบที่เล่นโวหาร เมื่อฉันพูดโวหารฉันหมายถึงขยะเว็บไซต์ Microsoft 360 ฟรี! ฉันเก่งมากกับสำนวนปกติที่มีประสบการณ์มาหลายปี แต่มันไม่สำคัญจริงๆเมื่อคุณเจอบางสิ่งที่คุณไม่รู้ว่าจะกำหนดเป้าหมายอย่างไร (ฉันพยายามทำงานร่วมกับget_html_translation_table(HTML_ENTITIES)และord()แต่ก็ยังไม่สามารถชนะ) นี้ในที่สุดก็ให้ฉันจับฉันต้องการที่จะก้าวไปข้างหน้า! ขอบคุณ!!!
aequalsb

บางคำอธิบายเพิ่มเติมสามารถพบได้ที่stackoverflow.com/questions/9868796/... ดีใจจังที่ช่วยคุณได้ @aequalsb
Micros

3
ใช้งานได้กับการค้นหาของ VSCode; อย่าลืมใช้ปุ่มสลับ "ใช้การค้นหา regex"
James Perih

7

ฉันมาที่นี่ด้วยปัญหาเดียวกันจากนั้นก็คิดออกด้วยตัวเอง ตัวละครแปลก ๆ นี้ปรากฏขึ้นพร้อมกับ HTML ของฉัน

ปัญหานี้น่าจะเป็นตัวแก้ไขโค้ดของคุณ ฉันใช้ Espresso และบางครั้งก็ประสบปัญหาเช่นนี้

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


ฉันคิดว่าฉันต้องเพิ่มฟังก์ชันนั้นใน Aptana / Eclipse ขอบคุณ!
Kyle

3

ZERO WIDTH SPACE.

ฉันเคยใช้เป็นเนื้อหาสำหรับเซลล์ตาราง "ว่าง" ไม่รู้ว่ามันทำอะไรใน<script>แท็ก


3

อักขระ ZERO WIDTH SPACE ถูกแทรกเมื่อคุณใช้ jQuery เพื่อเพิ่มองค์ประกอบโดยใช้ฟังก์ชันการจัดการ DOM เช่น. before () และ. หลังจาก ()

ฉันพบปัญหานี้เมื่อเพิ่มกรอบโต้ตอบโมดอลที่ซ่อนอยู่ที่ส่วนท้ายของเอกสารของฉันจากนั้นพบว่าพื้นที่ความกว้างศูนย์สกรูขึ้นเค้าโครงตรงนั้นเพิ่มพื้นที่ที่ไม่ต้องการ

การแก้ไขอย่างรวดเร็วคือการแทรกไว้ก่อนส่วนท้ายไม่ใช่ตามหลัง มันซ่อนอยู่แล้ว

ฉันไม่พบสิ่งใดใน jQuery ที่ทำสิ่งนี้:

https://github.com/jquery/jquery/blob/master/src/manipulation.js

ดังนั้นจึงอาจเป็นเบราว์เซอร์ที่เพิ่มเข้ามา


2

ฉันมีตัวละครเหล่านี้ปรากฏในสคริปต์ที่ฉันไม่ต้องการ ฉันสังเกตเห็นเพราะมันทำลายการจัดรูปแบบภาพ HTML / CSS ของฉัน: มันสร้างกล่องข้อความใหม่

ค่อนข้างแน่ใจว่าตัวแก้ไขบั๊กกี้กำลังเพิ่มพวกเขา ... ฉันสงสัยว่า Komodo Edit สำหรับ Mac ในกรณีของฉัน


ฉันสงสัยมัน. ปรากฏใน IE บนพีซีของฉันเมื่อฉันดู.html()div ที่แสดงถึง textbox ใน SP 2013 ฉันเชื่อว่าเป็นเพราะพฤติกรรมของเว็บแอปพลิเคชันที่แสดงข้อมูล ในกรณีของฉันความยาวคือ 1 สำหรับฉันเมื่อมันควรจะเป็น 0 มันเป็นเพราะอักขระนี้
vapcguy

2

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

ดูบทความของฉันเกี่ยวกับการลดลายนิ้วมือหากคุณสนใจเรียนรู้เพิ่มเติม


0

มันแสดงอักขระแปลก ๆ (†‹) จนกระทั่งฉันตั้งค่า charset เป็น UTF-8 ในส่วนหัวของไฟล์ html

<meta http-equiv="content-type" content="text/html; charset=UTF-8">

หรือสำหรับ HTML5:

<meta charset="UTF-8">

ตอนนี้โปร่งใสแล้ว แต่ยังคงแสดงใน html เมื่อฉันใช้ตัวตรวจสอบ

การลบสคริปต์ทั้งหมดออกจากเพจก็ไม่ได้ลบออกเช่นกัน

ฉันทดสอบสำหรับ Chrome และ IE

โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.