4

⬀、⤴、➶ などの特殊文字を表示したい場合、ユーザーのブラウザで表示できるかどうかを確認するにはどうすればよいですか? ▯の文字が出てほしくありません。もしそうなら、私は通常の↗を表示したいと思います。

では、出力した文字が正しく表示されるようにするにはどうすればよいでしょうか?

この質問に対するこの回答を見つけましたが、残念ながら私の状況では機能しません。 ここでのコツは、DOM ツリーに存在しない文字を配置して、表示されないことがわかっているようにし、その幅を目的の文字の幅と比較することです。幅が同じ場合、目的の文字も定義されておらず、どちらも表示されない可能性があります。

ただし、このトリックはすべての状況で機能するわけではありません。リンクされた回答では、非表示文字に U+FFFD を使用していますが、一部のデバイス (私の場合は Windows 携帯電話) では、U+FFFD は定義済みの文字であり、未定義の文字に使用されるグリフとは幅が異なります ( � vs ▯)。また、U+FFFE などの既知の非文字であるコードポイントは、▯ ではなく疑問符 (?) として表示されるため、幅も異なります。

だから私の質問は、自分のキャラクターを何と比較して、表示できないキャラクターにならないかを知ることができるということです?

4

1 に答える 1

0

複数の文字を使用する

モノスペース フォントを使用していないとします。異なる言語の 3 つ以上の文字を使用すると、それらすべてがインストールされている可能性はありません。

次に、それらをレンダリングできる環境で幅を測定し、このデータをアプリに提供します。

例えば:

  • A は B より広い
  • B は C よりも幅が広い

簡単なアルゴリズムは次のようになります。

  1. ユーザー環境で A、B、C の幅を収集します。
    あなたが説明したテクニックを使用してください。

  2. A が B より広い場合、B は C より広い
    。安全な文字にフォールバックする。

  3. これらの 1 つまたはすべてが正しくない場合。
    それを▯として使用します。

結論

これが基本であることは理解していますが、これが私が考えることができる最善の方法です。

于 2014-02-19T21:57:46.243 に答える