Zalgoテキストはどのように機能しますか?


694

以下のようなZalgoと呼ばれる奇妙な形式のテキストがさまざまなフォーラムで書かれているのを見ました。見るのはちょっと面倒ですが、キャラクターがどうあるべきかという私の考えを損なうので、本当に面倒です。私の理解では、キャラクターは線を横切って水平に移動し、特定の「コンテナー」内にとどまるはずです。明らかに、Zalgoテキストは垂直方向に移動しており、スペースに制限されていないようです。

これはUnicodeのバグ/欠陥/悪用/ハックですか?これらの個々のキャラクターは奇妙な特性を持っていますか?"ここで何が起きてるの?


H̡̫̤̤̣͉̤ͭ̓̓̇͗̎̀ơ̯̗̱̘̮͒̄̀̈ͤ̀͡w͓̲͙͖̥͉̹͋ͬ̊ͦ̂̀̚ ͎͉͖̌ͯͅͅd̳̘̿̃̔̏ͣ͂̉̕ŏ̖̙͋ͤ̊͗̓͟͜e͈͕̯̮̙̣͓͌ͭ̍̐̃͒s͙͔̺͇̗̱̿̊̇͞ ̸̤͓̞̱̫ͩͩ͑̋̀ͮͥͦ̊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

テキストには、結合マークとも呼ばれる結合文字が使用されています。Unicode標準(PDF)での文字の組み合わせのセクション2.11を参照してください。

Unicodeでは、文字のレンダリングは、各グリフが指定された高さのボックスに収まる単純な文字セルモデルを使用しません。結合マークは、ベースキャラクターの上、下、または内部にレンダリングできます

そのため、レンダリングソフトウェアがUnicodeレンダリングモデルに準拠していると仮定すると、ベース文字と「上に結合」マークからなる任意の長さの文字シーケンスを簡単に作成して、希望の視覚的高さに到達できます。そのようなシーケンスはもちろん意味がなく、サルでさえそれを生成することができます(たとえば、適切なドライバーを備えたキーボードが与えられた場合)。

また、「上に結合」マークと「下に結合」マークを混在させることができます。

質問のサンプルテキストは次で始まります:


36
Unicodeは、意図的に「実際の文字の使用法」にのみ準拠しているため、これを行うことができます。ソフトウェアはUnicodeに準拠している必要があります。そして、これが私たちが例えばを持っている理由U+1F4A9です。
Camilo Martin、

2
これに追加するために、以下は上記で使用されている結合文字のリスト、または「Zalgoテキスト」を生成するためのテキストです。zalgotextgenerator.com
VKK

270

文字を組み合わせるため、Zalgoテキストは機能します。これらは、前の文字を変更できる特殊文字です。

ここに画像の説明を入力してください

または

y +̆=y̆これは実際に

y + ̆ = y̆

それらを積み重ねることができるので、次のものを作成できます。


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

実際には:

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

下に物を置く場合も同じです。


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



それは実際には:

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

Unicodeでは、ヨーロッパ言語の発音区別符号と国際発音記号を組み合わせる主要ブロックはU + 0300–U + 036Fです。

詳細はこちら

分音記号を組み合わせたリストを作成するには、次のスクリプトを使用できます(リンクが消え続けるため)

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

また、emをチェックしてください



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.