>>835
> ▼ ryoji さん
> 特殊なのは、他コード⇔UTF-16変換時にバイナリを
> U+D800-D8FFに変換する処理だけで、
> 他コードから変換されたU+D800-D8FFは他コードに
> 変換するとき以外は純粋なUTF-16値として
> 扱ってしまえば良い、です。
> 多くのアプリで、他コード⇒UTF-16変換時に
> バイナリ部を独自変換で'?'などの特定の文字に変換して
> そのまま'?'の文字として扱うのと同様、上記変換で
> UTF-16値(U+D800-D8FF)に変換してしまうことに
> 決めているのですから。
UTF-16で文字化けに気付かず保存してしまう人
はいないと思いますが、上記の現在ではU+DC00からU+DCFFを
純粋なUTF-16として扱ってしまえばよいという考え方を、
UTF-16 に持ち込むのはだめですか?
そうすると、CMemory::GetKetaOfChar と
CTextMetrics::GenerateDxArray にある処理で、
現在のファイル文字コードで切り分ける処理をしなくても
良くなるのですが。。。