電子書籍の厳選無料作品が豊富!

0x81AF U+FF0D # FULLWIDTH HYPHEN-MINUS [2000]

unicodeからSJISに変換するプログラムを作っていますが、
上記のコードのみ、SJISでは表示されず、その原因がわかりません。

unicode「-」
SJIS「・」←と、なってしまう。

他の変換(全文字やったわけではありませんが)はうまくいっており、また、SJIS→unicodeへの変換をすれば元通り「-」の表示になります。考えられる原因はどんなものでしょうか?

環境
・VC++6.0
・Windows VISTA

A 回答 (2件)

幾つかの文字は、MSの変換表が腐ってるので、自前で特殊処理が必要です。



>他の変換(全文字やったわけではありませんが)はうまくいっており
全角英数や記号など、漢字以外の部分は、是非、全文字試すのをお勧めします。「-」以外にも何文字か誤って変換されてしまう文字がありますから。

実は、漢字部分も、旧字体と新字体がひっくり返ってたりして、自前で特殊処理が必要な文字も数文字あったりもするんだけど、全部調べる気力は無いです(私はメドイから「これはフォントが入れ替わってるんだ。フォントファイルが悪い」と思い込む事にした)
    • good
    • 0
この回答へのお礼

お二方ともありがとうございます。

非常にためになりました!

お礼日時:2008/12/15 14:19

http://ja.wikipedia.org/wiki/Unicode#WAVE_DASH_- …

その他の文字でも問題は起こりうるらしい

#とりあえず俺は理解してません
    • good
    • 0

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!