วิธีการแสดงตัวอักษรที่ซ่อนอยู่โดยค่าเริ่มต้น (เช่น ZERO WIDTH SPACE & # 8203)


198

ฉันเพิ่งสูญเสียบางส่วนในสุดสัปดาห์เนื่องจากสิ่งนี้ ... โจ๊กเกอร์ - พื้นที่กว้างเป็นศูนย์ ฉันเพิ่งใช้ตัวอย่างบางส่วนจากกลุ่ม Google และไม่รู้จักว่ามีตัวอักษรเพิ่มเป็นสองเท่าเนื่องจาก Idea (11) ไม่แสดงซึ่งทำให้เกิดปัญหากับการแยกไฟล์ปรับแต่งแอปของฉัน ... ฉันค้นพบโดยบังเอิญใน vi .

มีวิธีใดที่จะแสดงสิ่งเหล่านี้ใน IntelliJ (หรือวิธีอื่นในการตรวจสอบไฟล์) โดยไม่ต้องใช้โปรแกรมแก้ไขภายนอก

IntelliJ 11 / Mac OS 10.7

แก้ไข - ตัวอย่าง

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

#db.default.url="jdbc:mysql://​localhost/play-fullcalendar"
 db.default.url="jdbc:mysql://localhost/play-fullcalendar"

22
ตัวละครนี้ควรถูกห้ามโดยสนธิสัญญาระหว่างประเทศ มันเป็นอาวุธที่ทำให้ไขว้เขวมาก ฉันสูญเสียทั้งวันพยายามค้นหาสาเหตุของข้อผิดพลาดลึกลับที่ปรากฏในคอนโซล js ของฉัน อย่างจริงจังอักขระเป็นศูนย์กว้างหรือไม่ นั่นเป็นสูตรที่สมบูรณ์แบบสำหรับปัญหา คณะกรรมการมาตรฐาน UTF คิดอย่างไร?
Nick

@Nick ฉันมีปัญหาในการโหลด JS ของฉัน (ฉันได้รับเครื่องหมายคำถามในรูปสี่เหลี่ยมขนมเปียกปูนในตอนท้ายของไฟล์) และฉันเชื่อว่ามันเป็นปัญหาการเข้ารหัส ฉันได้รับUncaught SyntaxError: Unexpected token ILLEGALและการวิจัยเล็กน้อยทำให้ฉันมีความคิดว่ามันเป็นปัญหาสัญลักษณ์ที่ซ่อนอยู่ ฉันจะค้นหาตัวละครที่มีความกว้างเป็นศูนย์ลึกลับที่คุณกำลังพูดถึงได้อย่างไร เพียงเพื่อดูว่าปัญหา ...
Milkncookiez

คำตอบ:


359

ไม่แน่ใจว่าสิ่งที่คุณหมาย Settings -> Editor -> General -> Appearance -> Show whitespacesแต่คุณอย่างถาวรสามารถเปิดการแสดงช่องว่างในและนอกใน

View -> Active Editor -> Show WhiteSpacesนอกจากนี้คุณยังสามารถตั้งค่าสำหรับไฟล์ปัจจุบันเฉพาะใน

แก้ไข:

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


4
ellou 'Vic ขอบคุณสำหรับการตอบกลับ น่าเสียดายที่ตัวเลือกนี้ไม่แสดง 'ช่องว่างความกว้างศูนย์' ที่กล่าวถึงในเรื่อง ฉันแน่ใจว่ามีตัวละครอยู่เพราะสามารถแสดงได้ด้วยเช่น Vi แต่ไม่เห็นใน Idea: /
biesior

2
ฉันเห็น .. ผมคิดว่าเราจะต้องรอให้ CrazyCoder จะบอกว่ามันไม่ได้รับการสนับสนุนหรือสิ่งที่ต้องการนี้ :)
วิก

5
เริ่มต้นด้วย IntelliJ-14.1 มันซ่อนอยู่ในSettings -> Editor -> General -> Appearance -> Show whitespaces -> Leading | Inner | Trailing
Rob

4
เป็นไปได้ไหมที่จะทำให้จุดที่ผู้เสนอราคาในพื้นที่สีขาว? ชอบใน Sublime
OlehZiniak

2
@WillSewell คุณอาจส่งผลกระทบต่อสีโดยเลือกแล้วภายในหมวดหมู่นั้นให้ไปที่Settings -> Editor -> Color Scheme -> General Text -> Whitespacesฉันเปลี่ยนของฉันจากค่าเริ่มต้นเบื้องหน้า # 505050 เป็น # 404040 และพบว่ามันมองเห็นได้ แต่ไม่รบกวน
chaserb

81

วิธีแก้ปัญหาที่ง่ายมากคือการค้นหาไฟล์ที่ไม่ใช่อักขระ ASCII โดยใช้นิพจน์ทั่วไป นี่จะเน้นจุดทั้งหมดที่พวกเขาพบกับชายแดน

ค้นหา[^\x00-\x7F]และทำเครื่องหมายในช่องสำหรับ Regex

ผลลัพธ์จะมีลักษณะเช่นนี้ (ในโหมดมืด):

พื้นที่กว้างเป็นศูนย์ทำให้มองเห็นได้


ขอบคุณจริง ๆ แล้วฉันยอมรับและให้รางวัลกับคำตอบของ Vic สำหรับปลั๊กอินที่เขาสร้างขึ้นเพื่อแก้ไขปัญหาซึ่งเชื่อมโยงในตอนท้ายของคำตอบของเขา
biesior

2
ใช่ฉันเห็นว่า มันสมควรได้รับอย่างดี แต่สำหรับบางคนเพียงแค่ทำการค้นหานี้อาจเป็นวิธีที่เร็วกว่ามากในการติดตั้งปลั๊กอิน
Micros

ฉันใช้สิ่งนี้ในสคริปต์ PHP เพื่อสร้างเนื้อหา HTML ในรูปแบบที่ดีมากสำหรับการโยกย้ายไปยัง WordPress:$string = preg_replace( '/[^\x00-\x7F]/', null, $string ); htmlspecialchars_decode( htmlentities( html_entity_decode( $string ) ) );
aequalsb

@Micros มีโปรแกรมแก้ไขสำหรับ windows ที่ค้นหาไฟล์สำหรับอักขระที่ไม่ใช่ ASCII โดยใช้นิพจน์ทั่วไปหรือไม่ ในกรณีของฉันฉันต้องการค้นหา '\ u11891' เพื่อแก้ไขข้อผิดพลาดประเภทนี้: SyntaxError: อักขระไม่ถูกต้อง '\ u11891
user1788736

@ user1788736 ใช่ตัวแก้ไขไฮไลต์ไวยากรณ์หลายตัวรองรับสิ่งนี้ คุณสามารถใช้ Sublime Text หรือหนึ่งในแอปพลิเคชัน JetBrains เช่น WebStorm หรือ IntelliJ
Micros

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