掲示板システム
ホーム
アクセス解析
カテゴリ
ログアウト
文字列の分割(UTF8) (ID:64507)
名前
ホームページ(ブログ、Twitterなど)のURL (省略可)
本文
Blue様、いつもありがとうございます。 初心者なので聞いてばかりでお恥ずかしいのですが教えて下さい。 >1.MultiByteToWideChar で wchar_t型配列に変換 >2.指定した文字数で切り出し(wcsncpyとか) >3.切り出した文字列をWideCharToMultiByteでUTF8に再変換 以下のように考えてみたのですがうまく行きません。どこが悪いのでしょうか? CString str=L"3バイト文字と1byte文字が混ざってます"; wchar_t wbuff[52]; wchar_t buff[18]; char *wp = new char[str.GetLength()+1]; strcpy( wp, str ); MultiByteToWideChar(CP_UTF8, 0, wp, sizeof(wp), wbuff, sizeof(wbuff)); char out[18]; char idx=0; CStringArray list; while(idx < 52){ memcpy(buff,wbuff+idx,18); int siz = WideCharToMultiByte(CP_UTF8,0,buff,-1,NULL,0,NULL,NULL); WideCharToMultiByte(CP_UTF8,0,buff,-1,out,siz,NULL,NULL); idx +=18; list.Add(put); } printf("%d",(LPCSTR)list.GetAt(0)); printf("%d",(LPCSTR)list.GetAt(1)); printf("%d",(LPCSTR)list.GetAt(2)); printf("%d",(LPCSTR)list.GetAt(3)); よろしく、お願いします。
←解決時は質問者本人がここをチェックしてください。
更新する
戻る
掲示板システム
Copyright 2021 Takeshi Okamoto All Rights Reserved.