C++ 读取C# 生产的记事本乱码问题

6 篇文章 0 订阅

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

 

    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;

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

boat99

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值