[Seasar-user:13157] Re: [Teeda] IE6 + UTF-8 + MSゴシックの場合の文字崩れ対策

Koichi Kobayashi [E-MAIL ADDRESS DELETED]
2008年 3月 5日 (水) 17:30:23 JST


小林 (koichik) です.

Date:    Wed, 05 Mar 2008 11:42:29 +0900
From:    松山 大樹 <[E-MAIL ADDRESS DELETED]>
To:      [E-MAIL ADDRESS DELETED]
Subject: [Seasar-user:13153] [Teeda] IE6 + UTF-8 + MSゴシックの場合の文字崩れ対策

> html テンプレートを、
> <meta http-equiv="Content-Type" content="text/html; charset=UTF-8" />
> と、UTF-8 で作成し、input や、textarea のfont-family  がMSゴシックの場合、
> 文字が崩れて表示される場合があります。
> この現象はIE6 のみで発生します。

迷惑な仕様ですね.(^^;

> MSゴシックで正しく表示するためには、
> 
> <textarea id="hoge" lang="ja"></textarea>
> 
> のように、対象のコンポーネントにlang="ja" を指定してやればいいのですが、
> これを全てに付けるのはかなり面倒です。
> 
> そこで、ご相談なのですが、<input>と<textarea> だけでもいいので、
> lang="ja" を自動的に付加するような方法はないでしょうか?

もし文書型宣言を含めることができるなら,
DTD のデフォルト属性を利用することができます.

XHTML の DTD は Teeda 配布ファイルの
teeda-extension/src/main/resources/ 以下の

org/seasar/teeda/extension/resource/xhtml1

にあるので,例えば STRICT なら xhtml1-strict.dtd を
WEB-INF/classes に配置される場所 (src/main/resources) の
同じパスにコピーして,722 行目や 774 行目の

  %attrs;

を

  %coreattrs; %events;
  lang        %LanguageCode; "ja"
  xml:lang    %LanguageCode; "ja"
  dir         (ltr|rtl)      #IMPLIED

のようにすれば,Teeda がテンプレート XHTML を
読み込む際の <input> や <textare> の lang 属性が
デフォルトで ja になり,それがそのままレンダリング
されると思います.試してないけど.
# 文書型宣言があると <td> とかに colspan="1" とか
# 付くのと同じなのでたぶん大丈夫.

文書型宣言を付けられない場合はまた別途対策を
考えますが,おそらく XML 宣言なし&文書型宣言あり
ですよね?


-- 
<component name="koichik">
    <property name="fullName">"Koichi Kobayashi"</property>
    <property name="email">"[E-MAIL ADDRESS DELETED]"</property>
    <property name="blog">"http://d.hatena.ne.jp/koichik"</property>
</component>



Seasar-user メーリングリストの案内