很多人不知道如何将一个文本文件保存为UNICODE的, 下面的例子展示了如何使用windows api写一个UNICODE的文本文件:
#define UNICODE // comment this line if you want to compile as ansi
#include <windows.h>
int main()
{
TCHAR szText[] = TEXT("C:\\Documents and Settings\\Administrator\\桌面\\中文.txt\n");
DWORD dwBytesWrite;
WORD magic = 0xFEFF;
HANDLE hFile = CreateFile(TEXT("C:\\test.txt"), GENERIC_WRITE, FILE_SHARE_READ,
NULL, CREATE_ALWAYS, FILE_ATTRIBUTE_NORMAL, NULL);
if ( INVALID_HANDLE_VALUE == hFile )
return -1;
#ifdef UNICODE
WriteFile(hFile, &magic, sizeof(WORD), &dwBytesWrite, NULL);
#endif
WriteFile(hFile, szText, lstrlen(szText) * sizeof(TCHAR), &dwBytesWrite, NULL);
CloseHandle(hFile);
return 0;
}
|
说明几点:
1) #define UNICODE 必须定义在#include 之前
2) 对于文本文件, 需要写入FF FE 两个字节以表示是UNICODE的
3) 如果将本程序的#define UNICODE去掉, 则保存的文件为ANSI版本的
author: thinkere-mail:
cnhnyugmail.comqq: 94483026
阅读(1036) | 评论(0) | 转发(0) |