14

ユーザーが入力テキスト領域のフォントファミリをWSIWYGのようなスタイルで変更できるWebアプリがあります。ここで、ユーザーがテキスト領域に中国語のテキストを入力したが、漢字をサポートしていないフォントを選択したとします。私のアプリケーションでは、フォントが文字をサポートしていないときに通常表示される厄介な正方形(またはそのようなもの)をユーザーに表示してもらいたいと思います。そうすれば、ユーザーはフォントがその言語をサポートしていないことを知り、別の言語を選択できるようになります。私が抱えている問題は、ブラウザ(Firefox17およびChrome23)が、テキストの中国語部分を(Arialとして)それらの漢字をサポートするフォントでレンダリングしているように見えることです。これにより、ユーザーは自分が使用しようとしているフォントを信じるようになります。正常に動作します。

これを防ぐ方法はありますか(CSSから推測しています)?今回だけブラウザを「素敵」にしないようにする方法はありますか?

前もって感謝します。

4

2 に答える 2

10

他の答えがすでに説明したように、解決策は「すべての」ユニコードコードポイントを含むフォールバックフォントを使用することです。しかし、難しい部分は、数MBの重みがないものを見つけるか構築することでした。

数年後、フォールバックフォントのより軽量なソリューションであるAdobeのNotDefフォントが登場しました。これは、1,111,998 Unicodeコードポイントのクロスが付いたボックスを示しており、約22Kbであり、SIL OPENFONTLICENSEバージョン1.1を使用しています。

何も表示したくない場合は、AdobeBlankフォントもあります。

于 2016-12-11T19:11:29.570 に答える
7

すべての文字に一般的なグリフを持つフォントがfont-family: userChoice, yourCatchAllwhereに相当するものを使用して、キャッチオールフォントをスローすることにより、フォント置換プロセスをインターセプトできます。yourCatchAll

問題はそのようなフォントを見つけることです。ユニコードコンソーシアムが配布するLastResortフォントは、文字のカテゴリを広義に視覚的に示すため理想的ですが、そのEULAでは変更が許可されていないようです。これがWebフォント形式(.eotや.woffなど)の構築に適用されるかどうかは議論の余地があります。

Unicode BMPフォールバックフォントには、より自由な使用規則があるように見えますが、ボックス内のUnicode番号として文字を表示します(ほとんどの人が聞いたことがあるすべての文字が含まれていますが、基本多言語面のみをサポートします)。

于 2012-12-12T17:37:33.103 に答える