使用_tfopen_s和fopen_s时,稍不注意就会出现乱码问题;
_tfopen_s函数对应的CCS设置为UNICODE, UTF-8, andUTF-16LE均可打开编码为Unicode, UTF-8和Unicode big endian的.txt文件,不可打开编码为ANSI的.txt文件。
void CFileView::OnWrite()
{
// TODO: Add your command handler code here
FILE *pFile = 0;
if (!_tfopen_s(&pFile, TEXT("111.txt"), TEXT("w,ccs=UNICODE"))) //写入txt文件编码默认为ANSI
{
fwrite(TEXT("Today is the first day of NBA final game!"), 1,
sizeof(TEXT("Today is the first day of NBA final game!")), pFile);
}
//fseek(pFile, 0, SEEK_CUR);
//fwrite("Today is the first day of NBA final game!", 1,
//sizeof("Today is the first day of NBA final game!")+2, pFile);
fclose(pFile);
//fflush(pFile);
}
void CFileView::OnOpen()
{
// TODO: Add your command handler code here
FILE *pFile;
if (!_tfopen_s(&pFile, TEXT("111.txt"), TEXT("r,ccs=UNICODE"))) //打开文件
{
TCHAR str[100] = {0};
//memset(str, '\0', 100);
fread(str, 1, sizeof(str), pFile);
MessageBox(str);
fclose(pFile);
}
}
fopen_s函数可以打开ANSI,Unicode,UTF-8, Unicode big endian编码的.txt文件,但fwrite要加上TEXT();且操作完成后,.txt文件都保存为Unicode编码的。
void CFileView::OnWrite()</span>
{
// TODO: Add your command handler code here
FILE *pFile = 0;
if (!fopen_s(&pFile, ("1.txt"), ("w"))) //写入txt文件编码默认为ANSI
{
fwrite(("Today is the first day of NBA final game!"), 1,
sizeof(("Today is the first day of NBA final game!")), pFile);
}
//fseek(pFile, 0, SEEK_CUR);
//fwrite("Today is the first day of NBA final game!", 1,
//sizeof("Today is the first day of NBA final game!")+2, pFile);
fclose(pFile);
//fflush(pFile);
}
void CFileView::OnOpen()
{
// TODO: Add your command handler code here
FILE *pFile;
if (!fopen_s(&pFile, ("1.txt"), ("r"))) //打开文件
{
TCHAR str[100] = {0};
//memset(str, '\0', 100);
fread(str, 1, sizeof(str), pFile);
MessageBox(str);
fclose(pFile);
}
}