读取AUTOCAD生成的DXF文件,只有中文部分是乱码。
复制粘贴到一个新建的文件里,读取就是正确的了。
读取部分代码:
fopen_s(&pStream, FileName, "rb" );
fread(ReadBuffer, sizeof(char), READBUFFERSIZE, pStream);读到BUFFER里的时候就是乱码。

解决方案 »

  1.   

    MultiByteToWideChar()?
    能说具体些么,不懂。文件中是“你好”两个字。在我读入的BUFFER中,对应的是6个字符。-28、-67、-96、-27、-91、-67
    不是一个中文2个字符么
      

  2.   

    看到了
    utf-8 英文一个字节,中文三个字节
      

  3.   

    void CTextDlg::OpenUtf8(CString str,CString *stro)
    {
    INT nLen;  
    CHAR *pcBuf;  
      
      
    pcBuf = (CHAR *)str.GetBuffer(str.GetLength());  
    nLen = MultiByteToWideChar(/*CP_ACP|*/CP_UTF8, 0, pcBuf, -1, NULL, 0);  
      
    // (Unicode环境WCHAR需要加1,默认已经加1了)  
    WCHAR *pwBuf = new WCHAR[nLen];  
    memset(pwBuf, 0, nLen);  
      
    MultiByteToWideChar(/*CP_ACP|*/CP_UTF8, 0, pcBuf, -1, pwBuf, nLen);  
      
    stro->Format(_T("%s"), pwBuf);             
    delete []pwBuf;  
    // delete []pcBuf; 
    }
    把utf-8 转为unicode