2 blackmammmba blackmammmba 于 2016.01.15 11:22 提问

Unicode环境下,用WriteCString以CFile::typeText写汉字

Unicode环境下,用WriteCString以CFile::typeText写汉字,用UltraEdit打开,为什么啥都没写进去,除了换行。问题我已经解决,我只是想知道为什么。查了一下,有人说,使用Writestring写入时,文件打开模式为TypeText时,只会写入TCHAR双字节的一个字节,好像不对,因为一个字节也没有,所以连乱码也没有。这里面是怎么回事儿呢,求大神指导,谢谢

3个回答

91program
91program   Ds   Rxr 2016.01.15 11:31

问题已经解决,如何解决的呢?从解决的方法上,你不能分析出来问题的原因吗。
Unicode 文件的开头好像必须是 0xfffe,这样文本编辑软件都会将文件以 Unicode 来打开并处理。

91program
91program 回复blackmammmba: 中文部分?应该是无论中文、还是英文,都会有问题。只是英文会显示出第一个字符,而中文可能是由于汉字的一半不可显示的字符,所以看不到。你没有转成 HEX 模式看看,理论上应该是有一个字节的。
接近 2 年之前 回复
blackmammmba
blackmammmba 但是,我的问题是,以CFile::typeText方式打开,Unicode环境下,不管开头写不写0xFFFE,中文的部分,直接为空,啥都不写,不知道为啥,可有人说是只写一个字节
接近 2 年之前 回复
blackmammmba
blackmammmba 有两种方法,一种是以CFile::typeBinary方式打开文件,直接写入,像您说的,开头要写入0xFFFE。另一种,就是通过setlocale(LC_CTYPE,"chs"),当然写入的文本文件就是ANSI格式了
接近 2 年之前 回复
CSDNXIAON
CSDNXIAON   2016.01.15 12:01

MFC Unicode CFile 不能写汉字的问题
----------------------同志你好,我是CSDN问答机器人小N,奉组织之命为你提供参考答案,编程尚未成功,同志仍需努力!

oyljerry
oyljerry   Ds   Rxr 2016.01.15 13:24

WriteCString 这是什么函数,一般都是用CFile的Write,把对应的字符串写入。unicode编码就可以,OPen的时候指定unicode字符集

blackmammmba
blackmammmba 没用Write,我回头试试,用这个函数,在Unicode环境下,以CFile::typeText打开方式,写中文,写的是什么
接近 2 年之前 回复
Csdn user default icon
上传中...
上传图片
插入图片
准确详细的回答,更有利于被提问者采纳,从而获得C币。复制、灌水、广告等回答会被删除,是时候展现真正的技术了!