对于一个中文txt文本,C++中是两个字节存一个汉字,而对英文文本,则是一个字节存放一个字符,读取文件时,程序如何知道存储的是中文还是英文?他不会把一个汉字当成两个英文读取?谢谢!!
解决方案 »
- VC++里关于浏览的的问题
- 关于按钮类,怎么得到它的初始状态,问题内详
- 请问下拉列表定义了一个CComboBox变量m_TQBG,为何获取不到值呀
- 请教 exe或dll载入到内存的过程
- ocx控件的分发
- 我知道这可能有些弱,但我不得不问:怎么在一个基于对话框的MFC程序中捕捉WM_KEYDOWN消息?
- 为什么我的CFile应用代码不能链接?!
- 关于大专考研的问题
- 关于Time的问题,如何将一个字符串转换为一个CTime类型的值呀?
- 一个oledb的小问题
- (急救) dll中使用CAsyncSocket,在FreeLibrary时,CAsyncSocket的Close出错???
- VC2003和Visual Studio.Net 2003 是一样的么
char cbuf[10]
fp->Read(cbuf, 3);
就是读入3个字节的内容,如果但是文件指针指向字串是"a中文",则读入内容就是"a中";
上面条件不变,你运行
fp->Read(cbuf, 4);
得到内容就是"a中?",?表示乱码。在2000、XP下不用特意保存为UniCode,文本文件中的中中文也不会显示为乱码。
读取文件时,读的是字节码,当转换成字符串时,程序则按一定的字符集(通常是ANSI)
将字节码解码为字符串, 当编码和解码的字符集不一致的时候就会产生乱码识别中文英文是解码器的工作,不用我们操心, 只有当编码和解码的字符集不一致,
我们才要处理