unicode写文件有乱码有关问题

unicode写文件有乱码问题
		TCHAR szFileInfo[5 * MAX_PATH], szInfo[MAX_PATH];
memset (szInfo, 0, sizeof (szInfo));
memset (szFileInfo, 0, sizeof (szFileInfo));
_stprintf(szInfo, _T("信息\r\n"));
lstrcpy (szFileInfo, szInfo);
_stprintf(szInfo, _T("时间") );
lstrcat(szFileInfo , szInfo);
//之后是写文件
FILE *p = NULL;
p = _tfopen(m_strFile, _T("a"));//文件肯定存在的
if (p == NULL) return;

fwrite(szFileInfo, _tcslen(szFileInfo) * sizeof(TCHAR), 1, p);
fclose(p);


文件已经是unicode(ucs2-L)格式了,以上代码会写出乱码,求原因
第一行“信息”正确,但是写“时间”是乱码

------解决方案--------------------
把_T("a")改成_T("ab")试试
------解决方案--------------------
另外,不需写\r
c语言只需\n就是换行了
------解决方案--------------------
memset用wmemset
回车用\r\n