2011-06-27 22 views
1

英語と日本語のテキストが混在し、lang = "jp"とxml:lang = "jp"のXHTML1.1ドキュメントがあります。 html要素の開始タグに挿入します。実際のコンテンツは、UTF-8でエンコードされ、これは同様に、コンテンツタイプに記載されています中国語のフォントではなく、CJKテキスト用の日本語フォントをブラウザに読み込む方法

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.1//EN" 
    "http://www.w3.org/TR/xhtml11/DTD/xhtml11.dtd"> 
<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="jp" lang="jp"> 
<head> 
    <title>Test page</title> 
    <meta http-equiv="Content-Type" 
     content="application/xhtml+xml; charset=utf-8"/> 
</head> 
<body><div>今</div><div>込</div></body></html> 

XML/HTMLの仕様は「LANG」属性が継承されると言うので、内容は終わるはずです日本語をサポートしているフォントでレンダリングされていますが、日本語ではなく中国語のフォントを使用しています(日本語の漢字は実際には2つの言語の微妙な違いがありますが、文字)。

たとえば、上記のコードでは、最初の文字の上部に - が付いている必要があります。代わりに中国語フォントが使用されている場合、この文字は常に下にaのように表示されます。また、2番目の文字は7 \のような形にする必要がありますが、中国語のフォントを使用するとラムダλのように見えることがよくあります。これらはどちらも日本語の正しい印刷物/画面書式ではありません。

質問:ブラウザに、CJKテキストのための日本語フォントを選択させる方法がありますが、少なくとも1つがユーザーのものと一致することを期待して、100個のフォント名を含むCSSルールを作成せずにインストールされている?

(最小のCJKフォントは> 4MBの行にあり、完全なフォントは15〜20MBほどですので、正しいフォントがロードされるように@ font-face宣言に依存していることは明らかです)。最近のブラウザのすべての現在のバージョン:コメント

裕二へ

の答え。答えがプラットフォームとブラウザに依存する場合、それは本当に簡単です。

deceze:悲しいことに、悲しいことに、どのフォントを使用するかを明示的に示すCSSルールがないと、ブラウザは使用したフォントを言いませんから選びます。 getComputedStyle(document.getElementById("elementid")).getPropertyValue("font-family")を使用して計算されたスタイルを調べると、Chromeは "Times New Roman"を使用していると報告します。これは、そのフォントにCJKグリフがないためではありません。 Firefoxはこの質問があり、それはフォントが、一般的なカテゴリラベルされていないフォント「セリフ」、...

2015編集上の

四年を使用していることを報告し、でもあまり有用です依然として意見を得るので、2つの注意点があります。

  1. XHTML1.1はすでに2011年に脱出していましたが、現在は死んでいる技術です。 XMLは中間フォーマットであり、コンテンツをWeb上に置く必要がある場合、それを行うための唯一の正しい方法は、コンテンツを実際のHTMLにXSLTすることです(もちろん、XMLを使用する場合、XMLはHTML、PDFなどに変換するXSLTシートが既にあります)
  2. Webfontホスティングサービスsupport subsetting、ウェブサイトでは、アウトラインや文字の構成ルールのみを含むフォントを使用できますページ上で使用されます。
+0

テキストの表示に使用するフォントは何ですか? FirebugまたはWebkit Inspectorを試して、要素に移動し、そのプロパティを調べて調べます。 – deceze

+0

あなたのターゲットはどのブラウザですか?これらは残念ながらブラウザやプラットフォームに依存しているので、あなたの質問にそのことを明記したいと思います。 – Yuji

答えて

0

他にもすべてがうまくいかない場合は、CSSで一般的な日本語フォントを明示的に指定します。どのプラットフォームでどのフォントが利用可能か調べ、フォントスタックを作成します。

基本的に、旧式の方法でフォントを選択し、問題が解決するかどうかを確認してください。

+0

あなたは「少なくともBをやることができます」との質問に「あなたはBをしなければどうやってやれるの? =)CSSソリューションは、私が現在使用しているものです。なぜなら、この問題に対する実際の解決策が求められている間に利用できる唯一のストップギャップだからです。 –

+0

あなたがすでにこれをやっていたということは、この質問ではあまり明確ではありませんでした。おそらく、日本語フォントを選択する唯一の確実な方法は、Shift-JISのコンテンツタイプを使用することです。これはあなたがする必要がないと確信しています。 – timw4mail

+0

実際、シングル/ダブルの8ビットコードページ以降、UTF8ユニコードを使用できるようになりました。 "xml:lang"/"lang"を介した文字セットの指示が単にブラウザによって尊重されていないかどうか、あるいはこの属性のXML/HTML仕様が実際には何かよりも有用なヒントであるかどうかは、尊重されなければならない。 –

関連する問題