求助C++ 读unicode文件
如题,最近在做一个程序,其中有一部分是读取注册表文件,注册表文件是以UNICODE来编码的,应该怎么读取呢?
高手给个DEMO.
问题点数:20、回复次数:6Top
1 楼kangji(尾鱼头)回复于 2006-08-02 16:18:33 得分 0
用WINDOWS的API喽,难道你想自己分析REG文件结构读写吗?
用API的话,http://www.yesky.com/184/1836684.shtml
网上文章很多Top
2 楼kennywxf(小强)回复于 2006-08-02 18:18:57 得分 0
现在分析WINODWS注册表文件已经OK了(把注册表文件改成ASCII格式),就是读UNICODE有问题
不能用WINDOWS API,因为需要在WIN和LINUX下兼容.
高手给个读UNICODE文件的DEMO拉.Top
3 楼kangji(尾鱼头)回复于 2006-08-02 18:55:46 得分 0
读UNICODE有什么问题?说清楚点呢Top
4 楼shark0001()回复于 2006-09-13 11:23:38 得分 0
你要标准C++还是C,我也在试这个问题,在C里我有一个例程,你可以参考一下。
标准C++借助STL的我还没搞定。从test里读出内容写到test2文件里。(两个unicode文件在当前目录下。)
int main(void)
{
FILE *file = fopen("test.txt", "rb");
if (file == NULL)
{
fprintf(stderr, "Source file open error.\n");
return -1;
}
wchar_t buf[1024];
fseek(file,2,0);
FILE *file2 = fopen("test2.txt", "wb");
fputwc(L'\xFEFF', file2);
while (!feof(file))
{
int len = 0;
fgetws(buf, 1024, file);
//wprintf(L"%ls", buf);
fputws(buf,file2);
}
fclose(file);
fclose(file2);
return 0;
}Top
5 楼OOPhaisky(异化$渴望成功~~)回复于 2006-09-13 11:45:20 得分 0
顶一下Top
6 楼jamlan()回复于 2007-01-02 20:32:44 得分 0
在二进制打开文件试试。
fopen(filename,"rb");
但是fgetwc不还是读一个字节吗?我记得fgetwc的定义是将ASCII读出,转成WIDE CHARTop




