首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 开发语言 > C++ Builder >

String 乱码有关问题如何解决

2012-02-20 
String 乱码问题怎么解决?AnsiString不会有乱码(但不能移植),UNICODE版本的会有乱码。测试程序:C/C++ code/

String 乱码问题怎么解决?
AnsiString不会有乱码(但不能移植),UNICODE版本的会有乱码。
测试程序:

C/C++ code
//---------------------------------------void __fastcall TForm4::Button4Click(TObject *Sender){  AnsiString ansistr = "ansi string kk大厦大厦大厦大厦大厦kkkkkkkkkk";  String str = L"unicode string 大厦大厦大厦大厦大厦kkkkkkkkkkkk";  Memo1->Lines->Add(ansistr);  Memo1->Lines->Add(str);  ansistr.c_str();  str.w_str();  Memo1->Lines->Add(ansistr);  Memo1->Lines->Add(str + ansistr);  MessageBoxA(Handle,str.t_str(),"ok",0);  MessageBoxW(Handle,str.w_str(),L"ok",0);  str = ansistr;  MessageBoxA(Handle,str.t_str(),"ok",0);  str = AnsiString(str);  MessageBoxA(Handle,str.t_str(),"ok",0);}//---------------------------------------


[解决办法]
C/C++ code
  wchar_t TT[200];  lstrcpyW(TT,str.w_str());  MessageBoxW(Handle,TT,L"ok",0);
[解决办法]
先复制一个以前我的回复:

String在C++Builder2010中,有三个函数将其转化成字符串,并且根据工程选项中对_TCHAR宏映射定义的不同,略有差异(注意.t_str的方法在XE2中已经固定返回wchar_t *了):

Assembly code
方法      _TCHAR映射为char  _TCHAR映射为wchar_t-----------------------------------------------------.c_str()  返回wchar_t *     返回wchar_t *  .w_str()  返回wchar_t *     返回wchar_t *.t_str()  返回char *        返回wchar_t * 

热点排行