0

最近、Webサービスでユーザー名がブロックされていることに気付きました。これは、文字を文字、数字、および特定の記号に制限するために配置した正規表現フィルターと一致しなかったためです。文字列は「ゲーム」でしたが、私のゲームでは、ユーザーがUnicode文字列をテキスト入力フィールドに貼り付けたに違いないことがわかりました。これは、それまで考えていなかったことです。

少し調べてみたところ、C#正規表現はUnicodeに対応しており、より多くの組み合わせを許可するために\ p {L} \ p {M} \ p {Z} \ p {N}を追加できますが、それでもできません。適切な組み合わせをすべて許可または禁止したことを確認してください。特に、若いプレーヤー(または年配のプレーヤー)を怒らせる可能性のある特定の単語の使用をブロックできるようにしたかったのです。現在、ユーザーがエントリを完了した後に適用する不適切な単語フィルターがあります。これは、ASCIIを使用して構成した場合にのみ、不快なユーザー名を作成するほとんどの試みをブロックするのに役立ちます。

特定のUnicode文字がゲーム用に選択された特定のフォントで表されておらず、特定のUnicodeの組み合わせが実際にディスプレイの配置を台無しにする可能性がある場合、他のゲームはこれをどのように処理しますか?

4

1 に答える 1

1

高品質のゲーム/アプリでは、メイン フォントがサポートしていない文字にフォールバック フォントを使用します。そのため、Segoe UI にその文字がない場合は、Arial Unicode にフォールバックします。英語以外の文字、絵文字などは最終的に代替フォントを使用してレンダリングされるため、これは通常は問題なく機能します。

そうしないと、選択したフォントがサポートするものにユーザー入力を制限する必要があります。

ただし、「悪い言葉」を制限することと比較して、サポートされているフォントの問題はまったく別です。フラグを立てるメカニズムを持つことは良い考えですが、「いたずらな言葉」の共通リストを使用することも役立ちます。すべての言語を話せるわけではない場合でも、Web 上のどこかにそれらの言語の単語リストを見つけることができるでしょう。

于 2016-02-09T00:46:01.777 に答える