由于原来项目中的读取记事本方法未指定编码格式,导致读取中文会出现乱码。在网上查找了一些资料,修改如下:
TCHAR* pReadMode = L"r,ccs=utf-8";//这里增加了css=utf-8
const int READ_FULLFILE_BUF_SIZE = READ_BUF_SIZE*4;
FILE* fFile = _wfopen(pFile, pReadMode); // _wfopen(L"utf8.txt", L"r,ccs=utf-8") 这里将_tfopen改为_wfopen
TCHAR sTmpBuf[READ_BUF_SIZE] = {0};
int nReadLineTurns = 0;
if(fFile){
{
bool bValid = false;
TCHAR sTmpFileBuf[READ_FULLFILE_BUF_SIZE] = {0};
TCHAR sTmpBufPrefix[READ_FULLFILE_BUF_SIZE] = {0};
TCHAR sTmpBufExtra[READ_FULLFILE_BUF_SIZE] = {0};
TCHAR* pDataExtra = NULL;
{
_fgetts(sTmpBufPrefix, READ_BUF_SIZE, fFile);
while(_fgetts(sTmpBuf, READ_BUF_SIZE, fFile))
{
_tcscpy(sTmpBufExtra, sTmpBuf);
}
_tcscat(sTmpBufPrefix,sTmpBufExtra);
pDataExtra = sTmpBufPrefix;

本文介绍了一种在读取记事本文件时避免中文乱码的方法。通过在打开文件时指定UTF-8编码,并使用_wfopen函数替代_tfopen,确保了中文字符的正确读取。

5714

被折叠的 条评论
为什么被折叠?



