CFile读取文件问题

我想要让程序使用CFile读取文件,结果读取出来的完全不正确
我的代码是:
void CTextEditDlg::OnFileOpen()
{
    // TODO: 在此添加命令处理程序代码
    if (SaveFile()) {
        CFile file;
        char szFilter[] = "文本文件(*.txt)|*.txt|所有文件(*.*)|*.*||";
        int iRead;
        char buf[BUFSIZ];
        CFileDialog openDlg(true, CString(".txt"), 0,
            OFN_HIDEREADONLY | OFN_OVERWRITEPROMPT, CString(szFilter));
        if (openDlg.DoModal() == IDOK)
        {
            m_sFileName = openDlg.GetPathName();
            file.Open(m_sFileName, CFile::modeRead);
            int file_len = file.GetLength();
            char* pBuf = new char[file_len + 1];
            file.SeekToBegin();
            file.Read(pBuf, file_len);
            pBuf[file_len] = 0;
            m_sEditTxt.Append(CA2W(pBuf));
            delete[]pBuf;
            file.Close();
            UpdateData(FALSE);
            m_bChanged = FALSE;
        }
    }
}
如果使用记事本在文件里输入“123948”,结果他显示了“?“

去掉CA2W呢