一些关于字节的有关问题

一些关于字节的问题
最近我在写一个MFC文件加密程序,加密后的文件的结构为:文件名?文件内容,当然内容不是明文。
也就是说解密时需要对文件名进行读取,读到‘?’时停止,而卧的加密算法对于某些文件名会计算成‘?’
导致文件名读取不完整,这个以‘?’分隔的想法是起初针对于不加密文件名只加密内容的,因为文件名中不含问号,所以没有漏洞。一旦加密了文件名,就会有几率出问题。我不知道该怎么解决。
是该算法呢?还是找一个特别的分隔号?是不ANSCII和汉字编码的低八位都是正的呢?

我只是一个高中生,什么都是看书自己学的,大神们不要说得太专业简短,我会凌乱的。。谢谢了

------解决方案--------------------
文件名?文件内容
改成:
文件名??文件内容
2个 ?? 的 概率极低, 不行就 3个 
------解决方案--------------------
不要用分隔符
制定文件格式的时候应该在文件头部放一个结构体,简单点比如
typedef struct tagFileHeader
{
  DWORD dwFileNameLen;//文件名长度
  DWORD dwContentLen;//内容长度
}FileHeader;
然后结构体后面紧跟文件名和内容,不需要分隔符
读出数据后,根据文件头这个结构操作
可以找个简单的文件格式参考下
------解决方案--------------------
2楼的方法就好很,可以在文件前两个字节存储文件件长度,解析的时候先解析文件名长度,再读取出加密后的文件名。
或者,直接把文件名当作256个固定字节来处理也行。