我希望将文本作为泰国字符在编辑控件中保存在.txt文件中。问题是,在.txt文件中,泰国字符显示为???,但是英文字符和数字没有问题。
我该怎么做?
char* getStringFromCString(CString& x) // code convert string
{
char * temp = new char[(x.GetLength()) + 1];
int i = 0;
for (; i < x.GetLength(); i++)
{
temp[i] = x[i];
}
temp[i] = '\0';
return temp;
}
void CPictureDlg::OnBnClickedButtonSave() // Save.txt files
{
CString ss[2];
CITIZEN_ID.GetWindowTextW(ss[0]);
Name_text.GetWindowTextW(ss[1]);
char* citizen = getStringFromCString(ss[0]);
char* name = getStringFromCString(ss[1]);
std::ofstream myfile;
myfile.open("example.txt", std::ios::out | std::ios::app);
myfile << citizen << "\t" << name;
myfile.close();
UpdateData(FALSE);
}发布于 2014-01-01 03:48:55
首先,您必须使用Unicode。请阅读这个文章。其次,您的getStringFromCString()有一个出现内存泄漏的问题。
泰语字符集使用Unicode,std:wofstream,std:locale。
std::wofstream myfile;
//I just checked for Korean, you may need std::locale("thai").
myfile.imbue(std::locale("kor"));
myfile.open("example.txt", std::ios::out | std::ios::app);
myfile << input.GetString();
myfile.close();我希望这能对你有所帮助。新年快乐~
https://stackoverflow.com/questions/20865029
复制相似问题