掲示板システム
ホーム
アクセス解析
カテゴリ
ログアウト
UTF16->SJIS (ID:63637)
名前
ホームページ(ブログ、Twitterなど)のURL (省略可)
本文
>buf = (char *)malloc(sizeof(char)*res); が不味いです。 >//UTF-16からSJISに変換した時の領域取得 で取得できるのは、終端文字を含まない文字数ですので、 終端文字分領域を1多く取らなければなりません。 よって buf = ( char* )malloc( sizeof( char ) * ( res + 1 ) ); WideCharToMultiByte( CP_ACP , 0, (const wchar_t *)data, len, buf, res, NULL, NULL ); buf[ res ] = '\0'; とすればいけると思います。 ちなみにC++であれば、comdefの_bstr_tクラスやMFCのCStringでも簡単に変換できます。
←解決時は質問者本人がここをチェックしてください。
更新する
戻る
掲示板システム
Copyright 2021 Takeshi Okamoto All Rights Reserved.