「zalgo」を正しく表示するために必要な文字セット

「zalgo」を正しく表示するために必要な文字セット

Stack Overflow の次の回答は、正規表現を使用して HTML を解析することに対する説得力のある反論として有名です。https://stackoverflow.com/a/1732454/505154

投稿の内容は次第に破損し、最後は次のようになります。

zalgo が正しくレンダリングされました

しかし、私の Windows XP ラップトップでは次のようになります。

zalgo はボックスに置き換えられました

これらの「文字」を適切に表示するにはどうすればよいでしょうか?

答え1

最も簡単な方法は、十分に大きなフォントをダウンロードしてインストールすることです。シンボラ、Firefox または Chrome を使用します。

問題は 2 つあります。まず、テキストには、Win XP に同梱されているフォントではサポートされていない結合発音区別符号が含まれています。この問題を解決するために使用できるフリー フォントがいくつかあります。次に、font-familyHTML ドキュメント内の文字が適用可能なリストにリストされているフォントで覆われていない場合、IE は文字のレンダリングが不十分です。Chrome と Firefox ははるかに優れています。仮想 Windows XP システムでテストした Firefox 3 でも、この状況に問題なく対処しているようです。システム内の他のフォントから、不足している文字が拾われます。

発音区別符号を組み合わせて子供っぽく遊ぶページのほかに、実際にそのような記号を使用するページもあります。そのため、準備しておくと良いでしょう。すべての文字をカバーする単一のフォントはないので、必要に応じて追加のフォントをインストールしてください。Alan Wood は、フォントのダウンロード豊富なキャラクターレパートリー。

答え2

それは単なる文字セット以上のものです。

これを適切に表示するには、テキストをレンダリングするクライアントと、そのために使用されるライブラリが、Unicode マークの結合をサポートする必要があり、必要なフォントと、必要に応じてフォントを結合するためのフォントステッチングのサポートも必要です。

考えるメインフォントは Microsoft Sans Serif または Arial Unicode MS Regular で、Windows の各バージョンに標準で付属しており、XP 用の最初のリリース以降、2 度にわたって大幅に更新されています。おそらく、ここで欠落しているすべての Unicode 発音区別符号が含まれるようにするためでしょう。メインフォントに特定の発音区別符号が欠落している場合、その欠落を埋めるために他のフォントが使用されている可能性があります。更新されたフォントのコピーを料金を支払わずにダウンロードすること (ラップトップ用に Windows Vista、Windows 7、または Windows 8 を購入せずに) の法的影響についてはよくわかりません。

問題が、レンダリング ライブラリで発音区別符号の結合がサポートされていないことである場合、フォントをいくら使用してもテキストを正しく表示することはできません。唯一の選択肢は、テキストのレンダリングに使用するアプリケーションやライブラリを更新することです。

関連情報