由于原来项目中的读取记事本方法未指定编码格式,导致读取中文会出现乱码。在网上查找了一些资料,修改如下:
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;