Unicode/Ansi/UTF-8/Big Endian

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环境 [ 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类的成员变量
	}
	else
		m_context=(TCHAR*)lpbuf;
	delete lpbuf;

 

 

[ Top ]

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值