質問

日本語の文字を表示する必要があるjavascript暗記ゲームに取り組んでいます。アジア言語、または特に日本語のサポートを検出するクロスブラウザの方法はありますか?

window.navigator.languageはブラウザの言語に設定されますが、日本語をブラウザの言語(?)に設定していない人は見逃します。

役に立ちましたか?

解決

  

アジア言語、または特に日本語のサポートを検出するクロスブラウザーの方法はありますか?

「日本語フォントがインストールされている」という意味ですか?アジア言語のサポートの唯一のその他の側面”現代のOSが設定できるのは、Shift-JISなどの文字エンコーディングが知られているかどうか(Windowsではコードページ932)に関係しています。ただし、UTF-8を使用するだけで、どこでもサポートされているので、通常は必要ありません。

一般に、特定の文字範囲のフォントがインストールされているかどうかを直接知ることはできませんが、回り道があります。たとえば、ページ上のテキストのレンダリングされたサイズを測定する場合:

var half= document.createElement('span');
var full= document.createElement('span');
half.appendChild(document.createTextNode('\uFF71'));
full.appendChild(document.createTextNode('\u30A2'));
document.body.insertBefore(half, document.body.firstChild);
document.body.insertBefore(full, document.body.firstChild);
var havejapanesefont= half.offsetWidth!=full.offsetWidth;
document.body.removeChild(half);
document.body.removeChild(full);

これは、カタカナ‘ a’の半角および全角バリアントを含む要素を一時的に作成します。日本語フォントが利用可能な場合、それらは異なる幅になると予想されます。そのようなフォントが存在しない場合、ほとんどの場合、同様の‘レンダリング不能な文字’としてレンダリングされます。同じ幅のグリフ。

他のヒント

サーバーで を確認できる場合がありますAccept-Charset ヘッダー(日本語の文字が含まれていない場合)は、警告ページにリダイレクトします。残念ながら、このスレッドが示すように、ヘッダーはjavascriptで使用できません。

ライセンス: CC-BY-SA帰属
所属していません StackOverflow
scroll top