WinApi文件映射在每个符号之间放置奇怪的空白

WinApi文件映射在每个符号之间放置奇怪的空白,winapi,file-manipulation,Winapi,File Manipulation,我是WinApi编程的新手。我正在创建一个文件映射程序。 用户在输入中输入一些字符串,该文本必须放入文件中。 但在文件中,我在每个符号之间都有奇怪的空格。 例如,如果我输入“Some text”,我会得到“Some et x t”。为什么 pBuf = (LPTSTR)MapViewOfFile(fileMap, FILE_MAP_ALL_ACCESS, 0, 0, 10240000); ... GetWindowText(teacherInput, teacher, 31); memcpy((

我是WinApi编程的新手。我正在创建一个文件映射程序。 用户在输入中输入一些字符串,该文本必须放入文件中。 但在文件中,我在每个符号之间都有奇怪的空格。 例如,如果我输入“Some text”,我会得到“Some et x t”。为什么

pBuf = (LPTSTR)MapViewOfFile(fileMap, FILE_MAP_ALL_ACCESS, 0, 0, 10240000);
...
GetWindowText(teacherInput, teacher, 31);
memcpy((PVOID)pBuf, teacher, 31 * charSize);

正如Raymond Chen在评论中所述,发生这种情况是因为编码不匹配。

我打赌您正在创建一个UTF-16文件,但将其读取为UTF-8。查看内存中的
teacher
缓冲区,并检查
charSize
的值。是的,您说得对,谢谢