« Re: GDI+ で全角ハイフンが欠落する | トップページ | Visual Studio 2008 Shell »

2007年11月21日 (水)

(続) Re: GDI+ で全角ハイフンが欠落する

昨日の記事の補足。

KB944975MSDN forum で問題にしている 「全角ハイフン」 というのは、 それぞれの中にも書いてあるんですが、 U+2010 "Hyphen" のことです。
※ WinXP から、 IME の候補の説明に 「[全]ハイフン」 と出てくるようになってるので、 Unicode のことを知らない人が 「全角ハイフン」 と呼ぶのを、 もはや止められない。 (--;

で、 U+2010 "Hyphen" は、 MS のドキュメントを見ると、 U+002D "Hyphen - minus" と同じだとなっています。
U+002D "Hyphen - minus" は常に表示されるものであって、 さらにしつこく、 U+00AD "Soft hyphen" と混同するな、 とまで書かれています。

その U+00AD "Soft hyphen" は、 どう表示するかは実装しだいだけど、 HTML 4.x では、 通常は表示されず、 line break が起きたときだけ表示されるよ、 と書かれています。

さて。 GDI+ の実装は…
・ U+2010 "Hyphen" が入った文字列を渡して描画させると、 だいたいは、 U+002D "Hyphen - minus" と同じような表示になる。 ( 上のドキュメントの通り。 )
・ しかし、 渡す文字列によって ( たとえば 「ア」 が混ざっている、など ) は、 U+2010 "Hyphen" が U+00AD "soft hyphen" であるかのような挙動を示すことがある。 ( 上のドキュメントで、 混同するなと言われていることを、 やっているように見える )
…となっているように見えます。

自分のとこの定義と違う実装ではイカンだろう、 と私は思うわけですが、 でもまぁ、 これが仕様なんだそうで。
仕様ならしょうがない、 ってとこなんですが…
どういう文字列を渡したときに "soft hyphen" と同じような挙動に切り替わるのか、 そのへんの仕様は厳密に公表してもらいたいものです。

※ 「全角文字が混ざるときだけ」 って言うならそれでもいいんですが、 そのときは、 「全角文字」 の定義をきちんと言ってもらわないと… f(^^;
※ しかも。 U+FF71 「ア」 とかでも問題の現象が出ますから、 「全角文字
が混ざるときだけ」 ってことでもないでしょうし。 f(^^;

 


( 2007/11/25 追記 ) Soft Hyphen の例。
前述したように、 HTML 4.x には Soft Hyphen の挙動が定義されています
UTF-8 などの Unicode で HTML ドキュメントを書く場合は、 直接 U+00AD の文字を埋め込んでもいいのですが、 実体参照 ­ あるいは ­ として書くこともできます。

上のテキストエリアの文字列中に埋め込んでみました。
"ab" の 'a' と 'b' の間、 "あい" の 'あ' と 'い' の間、 それと、 Hyphen の 'y' と 'p' の間に Soft Hyphen (U+00AD) が入っています。
手元の環境では、 IE7 は正しく表示してくれます。 適当に文字を挿入して、 Soft Hyphen (U+00AD) の位置で改行されるようにしてみてください。
20071125_softhyphen_ie7 なお、 FireFoxe 2.0 は、 対応していないようです。

※ 右は、 IE7 で表示させたもののキャプチャ。

|

« Re: GDI+ で全角ハイフンが欠落する | トップページ | Visual Studio 2008 Shell »

プログラミング」カテゴリの記事

コメント

>U+2010 "Hyphen" は、 MS のドキュメントを見ると、

>自分のとこの定義と違う実装ではイカンだろう、 と私は思うわけですが、 でもまぁ、 これが仕様なんだそうで。

MSのドキュメントをMSの中の人が全然見てないのはいつものことなのでw

投稿: 道化師 | 2007年11月26日 (月) 21時23分

コメントを書く



(ウェブ上には掲載しません)


コメントは記事投稿者が公開するまで表示されません。



トラックバック

この記事のトラックバックURL:
http://app.cocolog-nifty.com/t/trackback/209349/17146897

この記事へのトラックバック一覧です: (続) Re: GDI+ で全角ハイフンが欠落する:

» (続々) Re: GDI で全角ハイフンが欠落する [biac の それさえもおそらくは幸せな日々@nifty]
前の記事を書いてるときには気づかなかったんですが…ひょっとして、 KB944975 のタイトル 「GDI で (…中略…) 全角ハイフンが表示されない」 に引 [続きを読む]

受信: 2007年11月25日 (日) 11時56分

« Re: GDI+ で全角ハイフンが欠落する | トップページ | Visual Studio 2008 Shell »