0

ドキュメントのどこかにランダムなその他の Unicode シンボルを挿入する JavaScript をいじっています。(これらの記号のように)

ただし、その文字がそれらの「੟」四角形の1つとして印刷されない場合は、生成された文字のみを挿入していることを確認したいと思います。

これまでのところ、2600 から 2699 の間の乱数を生成しています。しかし、それらが有効であり、正方形ではないことを確認したいと考えています。私が 16 進コードを生成しているのではなく、単に int を生成しているという事実を気にしないでください。どのシンボルが欠落しているかは問題ではありません。

String.fromCharCode(2600+(Math.floor(Math.random()*70)));

これを数回呼び出すと、次のようになります。

乾杯!

4

2 に答える 2

2

このような四角形 (またはひし形の疑問符、または四角形のコード ポイント値など、まったく異なるもの) として表示される可能性のある 2 つの基本的なものがあります。

  1. 表示用に U+FFFD 置換文字に置き換えられる不正な文字
  2. 選択したフォント (または代用される可能性のある他のフォント) にグリフがない文字。

最初のケースでは、無効なコード ポイント (非文字) を捨ててみることができますが、2 番目のケースでは、すべてフォント、ブラウザー、インストールされている他のフォント、レンダリングに使用されるテクノロジに依存するため、選択の余地はほとんどありません。テキストなど

于 2012-05-19T14:40:20.367 に答える
0

日曜日だからといって、コードポイントをキャンバスに描画したときに0xFFFF文字のように見えるかどうかをテストする小さなJSをハッキングしました。ピクセルを比較するだけの問題でした。したがって、フォント(サンプルコードでは、デフォルトのシステムフォントを使用しています)にコードポイントがない場合は、(うまくいけば)0xFFFFのように描画されます。

これは改善される可能性がありますが、日曜日のハックとして、それは非常に満足のいくものです。GitHubでコードを確認でき ます。

于 2012-05-27T09:52:39.870 に答える