下図はブロック文字U+2588により漢字がSimSunにフォント変化したコメントです。
ここで先頭に「ゴシック保護」文字U+30FBを追加します。U+2588と漢字の隣接を「a」(Arial)で遮ると、漢字の部分は先頭のU+30FBに従いゴシックに戻ります。
さて、下図はこのU+30FBを何か半角スペース的なものに置き換えたところです。 U+30FBと同じように漢字をゴシックに戻しています。
この半角スペース的に見えるものは、実はU+30FBと同じく「ゴシック保護」 の効果を持つU+FF9F(半角カタカナの半濁点)です。先日書いた合成用文字の挙動を利用して、○の位置を上にズラして描画されないようにしてみました。
ここで使ったU+0309はゴシックと合成することができました。
ただしこのまま先頭に置くと他の文字も上にズレてしまいます。そこでU+FF9Fの後ろへさらにU+0323という別の合成用文字を追加して位置を下げました。
この文字もゴシックと合成することができました。
本当はこれもU+0309の影響で上にズレているのですが、U+FF9Fの文字幅が狭いため字形の部分が描画されませんでした。
下図の下段は「a」 をゼロ幅文字(U+200C)に変えるなどして、もう少し実用的な形にしたところです。
と言っても、単にこれだけなら普通の全角スペース(U+3000)でも真似ができます。U+2588に直接隣接するとSimSun化してしまうため、間にU+200Cを追加しています。
問題は、いわゆるフォントの連れ回しに対しても「ゴシック保護」できるかどうかです。あいにくU+3000にそのような効果はありません。
U+FF9Fはこの状態を解除することができます。
U+3000とU+30FB・U+FF9Fの違いが何かという話は、長くなるので割愛します。由来はやはりWindowsコードページの定義の有無にあるんじゃないかと思います。
なお、この偽装U+FF9FはChromeでは豆腐になってしまいました。半角カタカナとの組み合わせがダメなようです。
ちなみにWindows 8上のIEは7と同じ表示でした。XPでは試してません。
ここで先頭に「ゴシック保護」文字U+30FBを追加します。U+2588と漢字の隣接を「a」(Arial)で遮ると、漢字の部分は先頭のU+30FBに従いゴシックに戻ります。
さて、下図はこのU+30FBを何か半角スペース的なものに置き換えたところです。 U+30FBと同じように漢字をゴシックに戻しています。
この半角スペース的に見えるものは、実はU+30FBと同じく「ゴシック保護」 の効果を持つU+FF9F(半角カタカナの半濁点)です。先日書いた合成用文字の挙動を利用して、○の位置を上にズラして描画されないようにしてみました。
ここで使ったU+0309はゴシックと合成することができました。
ただしこのまま先頭に置くと他の文字も上にズレてしまいます。そこでU+FF9Fの後ろへさらにU+0323という別の合成用文字を追加して位置を下げました。
この文字もゴシックと合成することができました。
本当はこれもU+0309の影響で上にズレているのですが、U+FF9Fの文字幅が狭いため字形の部分が描画されませんでした。
下図の下段は「a」 をゼロ幅文字(U+200C)に変えるなどして、もう少し実用的な形にしたところです。
と言っても、単にこれだけなら普通の全角スペース(U+3000)でも真似ができます。U+2588に直接隣接するとSimSun化してしまうため、間にU+200Cを追加しています。
問題は、いわゆるフォントの連れ回しに対しても「ゴシック保護」できるかどうかです。あいにくU+3000にそのような効果はありません。
U+FF9Fはこの状態を解除することができます。
U+3000とU+30FB・U+FF9Fの違いが何かという話は、長くなるので割愛します。由来はやはりWindowsコードページの定義の有無にあるんじゃないかと思います。
Unicode | 字形 | cp932 | cp936 | cp949 | cp950 | cp1250~cp1258 |
---|---|---|---|---|---|---|
3000 | 8140 | A1A1 | A1A1 | A140 | - | |
30FB | ・ | 8145 | - | - | - | - |
FF9F | ゚ | DF | - | - | - | - |
なお、この偽装U+FF9FはChromeでは豆腐になってしまいました。半角カタカナとの組み合わせがダメなようです。
ちなみにWindows 8上のIEは7と同じ表示でした。XPでは試してません。
0 件のコメント:
コメントを投稿