- ベストアンサー
文字化け
0x81AF U+FF0D # FULLWIDTH HYPHEN-MINUS [2000] unicodeからSJISに変換するプログラムを作っていますが、 上記のコードのみ、SJISでは表示されず、その原因がわかりません。 unicode「-」 SJIS「・」←と、なってしまう。 他の変換(全文字やったわけではありませんが)はうまくいっており、また、SJIS→unicodeへの変換をすれば元通り「-」の表示になります。考えられる原因はどんなものでしょうか? 環境 ・VC++6.0 ・Windows VISTA
- みんなの回答 (2)
- 専門家の回答
質問者が選んだベストアンサー
幾つかの文字は、MSの変換表が腐ってるので、自前で特殊処理が必要です。 >他の変換(全文字やったわけではありませんが)はうまくいっており 全角英数や記号など、漢字以外の部分は、是非、全文字試すのをお勧めします。「-」以外にも何文字か誤って変換されてしまう文字がありますから。 実は、漢字部分も、旧字体と新字体がひっくり返ってたりして、自前で特殊処理が必要な文字も数文字あったりもするんだけど、全部調べる気力は無いです(私はメドイから「これはフォントが入れ替わってるんだ。フォントファイルが悪い」と思い込む事にした)
その他の回答 (1)
- himajin100000
- ベストアンサー率54% (1660/3060)
回答No.1
http://ja.wikipedia.org/wiki/Unicode#WAVE_DASH_-_FULLWIDTH_TILDE.E5.95.8F.E9.A1.8C その他の文字でも問題は起こりうるらしい #とりあえず俺は理解してません
お礼
お二方ともありがとうございます。 非常にためになりました!