VC++中CStdioFile的Unicode问题

Posted

技术标签:

【中文标题】VC++中CStdioFile的Unicode问题【英文标题】:Unicode problem with CStdioFile in VC++ 【发布时间】:2011-01-05 09:42:52 【问题描述】:

我正在尝试读取诸如 http://google.com 之类的 URL Url 被很好地打开,当我在 while(...) 循环的第一行读取时,我没有得到一些表示 html 的合理字符,而是将奇怪的汉字放入 sCurlLine 中,它是一个 CString。我想我缺少一个 unicode 编码/解码部分。 以下是读取 URL 的简单代码。 while 循环逐行读取文件,然后将文本更新到文本框中。

感谢您的帮助

  void CInetSessionDlg::OnBnClickedBurl()
    
     CStdioFile * fpUrlFile;
     CString sCurlLine;
     UpdateData(TRUE);
     LPCTSTR url = m_sURL;
     fpUrlFile = m_misSession.OpenURL(url);

     if(fpUrlFile)
     
      while(fpUrlFile->ReadString(sCurlLine))
      
       m_sResult += sCurlLine;
       UpdateData(FALSE);
      
     

    

【问题讨论】:

你是构建unicode还是ansi? 【参考方案1】:

检查您正在构建的项目是否配置为使用正确的项目配置设置。 找到的设置:项目属性|常规|项目默认值|字符集

也许你设置错了“未设置” | “使用 Unicode”

【讨论】:

好吧,我必须设置多字节字符集。感谢您的提示!

以上是关于VC++中CStdioFile的Unicode问题的主要内容,如果未能解决你的问题,请参考以下文章

CStdioFile UNICODE编译 读取中文汉字乱码 .

CStdioFile UNICODE编译 英文系统下读取中文汉字乱码解决

what's new in vc2015

vc6开发环境由MBCS改成UNICODE

在 VC6 编译器中打开包含 Unicode 字符的文件名

如何在 VC6 中查看 unicode CString 的值?