잘고 텍스트는 어떻게 작동합니까?


694

다양한 포럼에서 작성된 아래처럼 Zalgo라는 이상한 형식의 텍스트를 보았습니다. 보기에는 성가신 일이지만 캐릭터가 무엇인지에 대한 나의 개념을 훼손하기 때문에 실제로 나를 귀찮게합니다. 내 이해는 캐릭터가 한 줄을 가로 질러 가로로 움직여 특정 "컨테이너"안에 있어야한다는 것입니다. 분명히 Zalgo 텍스트는 세로로 움직이고 있으며 어떤 공간으로도 제한되지 않는 것 같습니다.

이것이 유니 코드의 버그 / 결함 / 착취 / 해킹입니까? 이 개별 문자가 이상한 속성을 가지고 있습니까? "무엇"이 여기서 일어나고 있습니까?


어떻게 ̸̤͓̞̫ͩͩ͑̋ͮͥͦ̊Z̆̊͊҉҉̠̦̩͕ą̟̹͈̺̹̋̅ͯĺ̡̘̹̻̩̩͋͘g̪͚͗ͬ͒o̢̖͇̬͍͇͓̔͋͊̓ ̢͈͙ͣ̏̿͐ͯ͠t̛͓̖̻ͤ̈ͣ͝e͋̄ͬ̽͜҉͚̭͇x͎̬̠͇̌ͤ̓̓͐͐͋͡ţ̗̹̝̄̌ͧͩ̕͢ ̮̗̩̳̾w͎̭̤͍͇̰̄͗ͭ͗ͮ̐o̢̯̻̰̼͕̾ͣͬ̽̔̍͟r̢̪͙͍̠ǩ̵̶̗̮̮ͪ? ̙͉̥̬͙̟̮͕ͤ̌͗ͩ̕͡



31
en.wikipedia.org/wiki/Combining_character에서 힌트를 얻을 수 있습니다.
Lucas Jones

2
: 이것은 또한 당신의 마음을 날려 버릴 수 en.wikipedia.org/wiki/...
부르 한 알리

3
의무 참조로 xkcd.com/1857
mackycheese21

답변:


431

텍스트는 결합 문자라고도하는 결합 문자를 사용합니다. 유니 코드 표준 (PDF) 에서 문자 결합의 섹션 2.11을 참조하십시오 .

유니 코드에서 문자 렌더링은 각 문자가 주어진 높이의 상자에 맞는 단순한 문자 셀 모델을 사용하지 않습니다. 결합 마크는 기본 캐릭터의 위, 아래 또는 내부에 렌더링 될 수 있습니다.

따라서 렌더링 소프트웨어가 유니 코드 렌더링 모델을 준수한다고 가정하면 원하는 길이만큼 기본 문자와 "위의 조합"표시로 구성된 문자 시퀀스를 쉽게 구성 할 수 있습니다. 이러한 시퀀스는 물론 의미가 없으며, 심지어 원숭이조차도 그것을 생성 할 수 있습니다 (예를 들어, 적절한 드라이버가있는 키보드가 주어진 경우).

그리고“위의 조합”과“아래의 조합”마크를 혼합 할 수 있습니다.

질문의 샘플 텍스트는 다음으로 시작합니다.


36
유니 코드는 의도적으로 "실제 문자 사용"에 부합하기 때문에이 작업을 수행 할 수 있습니다. 소프트웨어는 유니 코드를 준수해야합니다. 그리고 이것이 우리가 예를 들어했던 이유 U+1F4A9입니다.
Camilo Martin

2
: 그냥 여기 "Zalgo 텍스트"를 생성하기 위해 위 아래 사용되는 문자를 조합의 목록, 또는 텍스트를 통해,이에 추가 할 zalgotextgenerator.com/unicode
VKK

270

Zalgo 텍스트는 문자를 결합하여 작동합니다. 이들은 앞에 오는 문자를 수정할 수있는 특수 문자입니다.

여기에 이미지 설명을 입력하십시오

또는

y + ̆ = y̆ 실제로

y + ̆ = y̆

서로 쌓을 수 있기 때문에 다음을 생산할 수 있습니다.


와이

실제로는

y̆̆̆̆̆̆̆̆̆̆̆̆̆̆̆̆̆̆

물건을 아래에 두는 것도 마찬가지입니다.


와이



실제로는 :

y̰̰̰̰̰̰̰̰̰̰̰̰̰̰̰̆̆̆̆̆̆̆̆̆̆̆̆̆̆̆̆̆̆

유니 코드에서 유럽 언어와 분음 부호를 결합하는 기본 블록은 U + 0300–U + 036F입니다.

여기에 대한 자세한 내용

분음 부호를 결합한 목록을 작성하려면 다음 스크립트를 사용할 수 있습니다 (링크가 계속 죽기 때문에)

for(var i=768; i<879; i++){console.log(new DOMParser().parseFromString("&#"+i+";", "text/html").documentElement.textContent +"  "+"&#"+i+";");}

체크 아웃



Mͣͭͣ̾ Vͣͥͭ͛ͤͮͥͨͥͧ̾


2
어떻게 입력하겠습니까?
Aequitas

6
@Aequitas 만약 당신이 ALT코드 에 대해 묻는다면, 당신은 단순히 y&#x0306;&#x0306;'순수한'html로 들어가는 곳에 붙여넣고 브라우저는 그것을 마술처럼 할 것입니다 ...
Matas Vaitkevicius

2
@ barbsan 안녕하세요, 알려 주셔서 감사합니다.이를 생성하는 스크립트로 대체했습니다.
Matas Vaitkevicius

나는 왜 당신이 틸대와 함께 Y의이 특별한 예를 선택했는지 궁금합니다. 실제로 러시아어로 의미가 있습니다. 잘 알고 있는지 확실하지 않습니다.
SergeyA

@SergeyA이 예제는 연결된 wikipedia 페이지 ( en.wikipedia.org/wiki/Combining_character )가 사용 하는 것과 동일한 예제이므로이 예제를 사용한다고 생각합니다 .
Mischa
당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.