c++Builder中字符串转字符乱码问题
因为工作需要,要用程序改动文本文件,由于界面赋值是字符串性质,而文本文件读取函数fgets()参数必须字符数组,因此用代码转换写入文本,书写如下:
1.
UnicodeString Db = cxDBTextEdit59->Text;
//假设字符串为“因为工作需要,要用程序改动文本文件”这几个字;
AnsiString Cstr = Db; //真不懂为啥非要用UnicodeString代替以前的AnsiString,
char sch[64];
int i,j;
j= Cstr.Length();//
for(i=0;i<j;i++)
{
sch[i] = Cstr[i+1];//AnsiString的第一个下标从1开始,数组是从0开始。
}
fprintf(px,"%s",sch);///
2. UnicodeString Db = cxDBTextEdit59->Text; ;
char* cp = new char[Cstr.Length()+1];
__try
{
strcpy(cp, Cstr.c_str());
fprintf(px,"%s",sch);///
}
__finally
{
delete[] cp;
}
以上结果都无法打开文本文件,用查看器发现两种方法都赋值为乱码,希望大神帮助解答下,谢谢!!!!!!!!!