Unicode/Ansi/UTF-8/Big Endian

来源:互联网 发布:92轮式步兵战车知乎 编辑:程序博客网 时间:2024/05/17 14:14

Unicode/Ansi/UTF-8/Big Endian

Document Infomation  File ID  :    0804  Create  :  08-06-06 Night  Author  :  Joephia  Update  :  08-06-06 Night Abstract

  • 设置工程为Unicode环境
  •  从Unicode文件中读取文本

设置工程为Unicode环境 [ Top ]

  1. 选择菜单 Project | Setting | C/C++ 添加预处理宏(Preprocessor Definitions) UNICODE
  2. 选择菜单 Project | Setting | Link 选择分类Output ,修改入口符号(Entry-Point Symbol)为wWinMainCRTStartup
  3. 在工程中使用_T(""),或者 L"" 宏来定义双字节字符串
  4. 使用 _tcscpy ,_tcscat ,_stprintf 等函数操作双字节字符串

 

 从Unicode文件中读取文本 [ Top ]

这里,你不需要考虑从Ansi转换到Unicode的问题,因为文件本身就是双字节的,只需要读取整块数据就可以了,另外这里简单判断了Unicode的BOM(Byte of Mark)--0xFEFF

DWORD nFileLen=ar.GetFile()->GetLength();LPSTR lpbuf=new char[nFileLen+2];lpbuf[nFileLen]=lpbuf[nFileLen+1]='/0';ar.Read(lpbuf,nFileLen);WORD BOM=MAKEWORD(lpbuf[0],lpbuf[1]);if (BOM==0xFEFF) {m_context=(TCHAR*)(&lpbuf[2]);   //m_context 是自定义Doc类的成员变量}elsem_context=(TCHAR*)lpbuf;delete lpbuf;

 

 

[ Top ]

原创粉丝点击