C 如何解析WAB文件?

C 如何解析WAB文件?,c,visual-c++,C,Visual C++,我有一个WAB文件(Windows通讯簿),如以下(十六进制): 当我打开输出文本文件时。数据如下: S p o u S e_AZ a m 每个字符之间都有一个空格。如何删除此空格。有很多方法可以将字符转换为无符号短字符。您正在将UTF-8文本转换为UTF-16吗?您正在将普通数组转换为数组吗?期望的输出是什么?@Dietrich Epp:输出看起来像一个b h i s h e k p。每个字符之间都有一个空格。我想移除这个空间“阿披实”是从哪里来的?该格式看起来既包含二进制数据又包含文本数据,

我有一个WAB文件(Windows通讯簿),如以下(十六进制):

当我打开输出文本文件时。数据如下: S p o u S e_AZ a m
每个字符之间都有一个空格。如何删除此空格。

有很多方法可以将
字符
转换为
无符号短字符
。您正在将UTF-8文本转换为UTF-16吗?您正在将普通数组转换为数组吗?期望的输出是什么?@Dietrich Epp:输出看起来像一个b h i s h e k p。每个字符之间都有一个空格。我想移除这个空间“阿披实”是从哪里来的?该格式看起来既包含二进制数据又包含文本数据,但它包含的文本是“配偶”。在不知道格式的情况下,很难知道您想要如何解码。@Dietrich Epp:是的,它包含的文本是“party_azam”,但当我使用函数fwrite(Main_buffer,1,TotalSize,tempFile)将此文本写入文本文件时;字符串的每个字符之间都有一个空格。我怎样才能移除这个空间。你知道这个空间的存在吗?还有一个开源库。在你问之前,我个人也没有用过。 1F00483A 18000000 53007000 6F007500 73006500 5F006100 7A006100 6D000000 1F10583A 02000000‌ 32000000 16000000 4E006500 77002000 43006800 69006C00 64003200 00001400 00004E00 65007700 2‌0004300 68006900 6C006400 00001F00 183A0C00 00005200 20002600 20004400 00001F00 193A2800 00‌006D00 61006900 6E002000 62007200 61006E00 63006800 20006700 75007200 67006100 6F006E00 000‌​0
int nOfRecord, TotalSize, data=0;
fread(&nOfRecord, 1, 4, pFile);
fread(&TotalSize, 1, 4, pFile);
data = TotalSize;
char* Main_buffer = (char*)malloc(data*sizeof(data));
fread(Main_buffer, 1, TotalSize, pFile);
fwrite(Main_buffer, 1, TotalSize, tempFile);
free(Main_buffer);