숨겨진 문자를 기본적으로 표시하는 방법 (ZERO WIDTH SPACE, 즉 & # 8203)


197

나는 이것으로 인해 주말의 일부를 잃어 버렸습니다. 방금 Google 그룹의 일부 스 니펫을 사용했지만 아이디어 (11)이 표시하지 않기 때문에 두 배의 문자가 있음을 인식하지 못했습니다. 이로 인해 내 앱의 구성 파일 구문 분석에 문제가 발생했습니다 ... .

외부 편집기를 사용하지 않고 IntelliJ (또는 파일을 검사하는 다른 방법)에 그러한 것을 표시하는 방법이 있습니까?

IntelliJ 11 / Mac OS 10.7

편집-샘플

이 두 줄은 브라우저와 아이디어에서 동일하게 보입니다. 페이지의 코드에서 첫 번째 주석이 달린 행에서 mysql://와 사이에 0 너비 공간이 숨겨져 localhost문제가 있음을 알 수 있습니다. 물론 '조커'라고 생각하면 검색을 사용하여 바꾸려고 시도 할 수 있지만, 특히 어떤 식 으로든 볼 수없는 경우에는 없어야 할 부호를 기대하지 않습니다.

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

22
이 성격은 국제 조약에 의해 금지되어야합니다. 엄청난 산만 함의 무기입니다. js 콘솔에 신비한 오류가 나타나는 원인을 찾으려고 하루 종일 잃었습니다. 너비가 0 인 문자입니까? 그것은 문제를위한 완벽한 레시피입니다. UTF 표준위원회는 무엇을 생각하고 있었습니까?
Nick

@ Nick, JS를로드하는 데 문제가 있습니다 (파일 끝에 다이아몬드 안에 물음표가 나타납니다). 인코딩 문제라고 생각합니다. 나는 Uncaught SyntaxError: Unexpected token ILLEGAL약간의 연구를 통해 숨겨진 기호 문제라는 생각으로 이끌었습니다. 당신이 말하는이 신비한 0 너비 문자를 어떻게 찾을 수 있습니까? 그것이 문제인지 확인하기 위해 ...
Milkncookiez

답변:


359

무슨 뜻인지 확실하지 않지만에서 공백 표시를 영구적으로 켜거나 끌 수 있습니다 Settings -> Editor -> General -> Appearance -> Show whitespaces.

또한 현재 파일에 대해서만 설정할 수 있습니다 View -> Active Editor -> Show WhiteSpaces.

편집하다:

인기있는 문제처럼 보이기 때문에 자유 시간이 있었기 때문에 코드에 이러한 이상이 있는지 검사하는 플러그인을 작성했습니다. 영폭 문자 로케이터 라고하며 시도해 볼 수 있습니다.


4
ellou 'Vic, 답변 주셔서 감사합니다. 불행히도이 옵션은 주제에 언급 된 '제로 폭 공간'을 표시하지 않습니다. 문자가 존재한다고 확신합니다. 즉, 문자를 표시 할 수 있기 때문입니다. Vi, 그러나 그것을 아이디어에서 볼 수 없다 : /
biesior

2
알 겠어 .. CrazyCoder가 지원되지 않거나 다음과 같은 말을하기를 기다려야 할 것 같다 :)
Vic

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. 나는 # 404040에 기본 전경 # 505050에서 광산을 변경하고 표시하지만 산만하지 찾을
chaserb

81

매우 간단한 해결책은 정규식을 사용하여 파일에서 ASCII가 아닌 문자를 검색하는 것입니다. 테두리가있는 모든 지점을 멋지게 강조 표시합니다.

[^\x00-\x7F]정규식 상자를 검색 하고 선택하십시오.

결과는 다음과 같습니다 (어두운 모드에서).

폭이 0 인 공간 표시


Thx는 실제로 문제를 해결하기 위해 만든 플러그인에 대한 Vic의 답변에 동의하고 현상금을 냈습니다.
biesior

2
그래, 나는 그것을 보았다. 그것은 가치가있다. 그러나 일부 사람들에게는 단순히이 검색을 수행하는 것이 플러그인을 설치하는 훨씬 빠른 솔루션 일 수 있습니다.
Micros

$string = preg_replace( '/[^\x00-\x7F]/', null, $string ); htmlspecialchars_decode( htmlentities( html_entity_decode( $string ) ) );
필자

@ 마이크로. ASCII가 아닌 문자를 정규식으로 파일을 검색하는 윈도우 용 편집기가 있습니까? 내 경우에는이 유형의 오류를 해결하기 위해 '\ u11891'을 찾아야합니다. SyntaxError : Invalid character '\ u11891
user1788736

@ user1788736 그렇습니다. 많은 구문 강조 편집기가이를 지원합니다. Sublime Text 또는 WebStorm 또는 IntelliJ와 같은 JetBrains 응용 프로그램 중 하나를 사용할 수 있습니다.
Micros

당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.