[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
[plamo:30206] Re: チルダ問題
-
From:Naofumi Honda
-
Date:Fri, 30 Oct 2009 13:14:41 +0900 (JST)
- Subject: [plamo:30206] Re: チルダ問題
- From: Naofumi Honda <honda@xxxxxxxxxxxxxxxxxxxxxx>
- Date: Fri, 30 Oct 2009 13:14:45 +0900
- User-agent: KMail/1.12.2 (Linux/2.6.31.4-plamoSMP; KDE/4.3.2; i686; ; )
本多です
> ぐぐってみましたが,
>
> http://www.kde.gr.jp/~akito/xft/install.html
>
> | 多く日本語フォントはcp932という仕様のUnicode-Jis変換表を前提に作られ
> | ていて、これはQtがデフォルトで用いている変換表とは微妙に異なるもので
> | す。そのため、Qtでは環境変数 UNICODEMAP_JP で変換表をcp932仕様に切
> | り換えなければ、「U+301C」など一部の記号が表示できません。
>
> 他にもたくさん出てきますね.フォントによっては「U+301C」が表示出来ないと
> か,別のフォント (ex. Kochi Gothic) にしたら表示するようになったとか...
ええと、Plamoの立場からこの問題を整理しておきますね。 まず、
1) UCS 0xFF5E (FULLWIDTH TILDE) 全角版tilde
2) UCS 0x301C (WAVE DASH)
こいつの形状はfont file依存です。 Unicodeの規格書では逆チルダの形で定義されてます
(これが正しくないわけですけど)。
Vista以前に付属のms*.ttc ->逆tilde
Richo lx*.ttc ->逆tilde
Vista以降に付属のms*.ttc ->tildeの拡大版
IPA ->tildeの拡大版
VL gothic ->tildeの拡大版
という訳で、plamoでは形状の違いをのぞけば表示されないということはなく
対策を入れる必要はないわけです。
!!ですから、形状や表示されない問題は無視して考えて下さい。
問題はeuc --> unicodeがinjective mapになっているかです。
まずEUCでは
WAVE DASH 0xA1C1 (2bytes)
FULL WIDTHTILDE SS3 + 0xXXXX (3 bytes)
となっていますです。(SS3はshift outでG2, G3をGL, GRにmapします).
Qtのmappingはdefaultでは単射になりますが、
EUC 0xA1C1 -> UCS 0x301C
EUC SS3 + 0xXXXX -> UCS 0xFF5E
UNICODEMAP_JPをcp932にすると
EUC 0xA1C1 -> UCS 0xFF5E
EUC SS3 + 0xXXXX -> UCS 0xFF5E
にmapされて単射でなくなります。
これは絶対にダメです。
- References
-
- [plamo:30203] チルダ問題, Naofumi Honda
- [plamo:30204] Re: チルダ問題, KOJIMA Mitsuhiro
- [plamo:30205] Re: チルダ問題, KATOH Yasufumi
[検索ページ]
[メール一覧]
Plamo ML 公開システム