CString串中的汉字如何写入文件

hyzkui 2010-02-24 03:10:03
vc2008,开发环境是Unicode字符
CFile file(_T("E:\\1.txt"),CFile::modeCreate|CFile::modeNoTruncate|CFile::modeWrite);
file.SeekToEnd();
CString s=_T("123你好");
file.WriteString(s);
file.Close();

发现只写入了"123",汉字未写入。
请给一个正确代码
...全文
181 11 打赏 收藏 转发到动态 举报
写回复
用AI写文章
11 条回复
切换为时间正序
请发表友善的回复…
发表回复
hyzkui 2010-02-24
  • 打赏
  • 举报
回复
引用 3 楼 visualeleven 的回复:
主要是Unicode编码的问题,好像CFile file或者CStdioFile类写CString中的中文字符存在bug,你可以上网找一下,下面的这种可以的:

#include <atlbase.h>

CFile file;
file.Open(_T("F:\\1.txt"), CFile::modeCreate|CFile::modeReadWrite);
CString strText(_T("您好123!"));
USES_CONVERSION;
char* buf = T2A(strText);
file.Write(buf, strlen(buf));
file.Close();

佩服!!!
dong364 2010-02-24
  • 打赏
  • 举报
回复
把unicdoe转换为多字节
o_yale_o 2010-02-24
  • 打赏
  • 举报
回复
还有就是:如果是Unicode项目,创建的文件应该是Unicode文件,即:文件以“0xFF,0xFE”开头
o_yale_o 2010-02-24
  • 打赏
  • 举报
回复
CFile::typeBinary
+ 别用CFile改用CStdFile.WriteString
BombZhang 2010-02-24
  • 打赏
  • 举报
回复
在2005里,程序里这么搞一下就好了:
_tsetlocale(LC_CTYPE,TEXT("chs"));
gamezealot 2010-02-24
  • 打赏
  • 举报
回复
看看这里,有很好的讨论:
http://topic.csdn.net/t/20030313/23/1528742.html
WizardK 2010-02-24
  • 打赏
  • 举报
回复
WRITEFILE
jianghandaxue 2010-02-24
  • 打赏
  • 举报
回复
引用 3 楼 visualeleven 的回复:
主要是Unicode编码的问题,好像CFile file或者CStdioFile类写CString中的中文字符存在bug,你可以上网找一下,下面的这种可以的:

#include <atlbase.h>

CFile file;
file.Open(_T("F:\\1.txt"), CFile::modeCreate|CFile::modeReadWrite);
CString strText(_T("您好123!"));
USES_CONVERSION;
char* buf = T2A(strText);
file.Write(buf, strlen(buf));
file.Close();



up
Eleven 2010-02-24
  • 打赏
  • 举报
回复
主要是Unicode编码的问题,好像CFile file或者CStdioFile类写CString中的中文字符存在bug,你可以上网找一下,下面的这种可以的:

#include <atlbase.h>

CFile file;
file.Open(_T("F:\\1.txt"), CFile::modeCreate|CFile::modeReadWrite);
CString strText(_T("您好123!"));
USES_CONVERSION;
char* buf = T2A(strText);
file.Write(buf, strlen(buf));
file.Close();
hyzkui 2010-02-24
  • 打赏
  • 举报
回复
不行呀,打开时只有123加几个空格
ziplj 2010-02-24
  • 打赏
  • 举报
回复
打开文件的时候 或上一个 CFile::typeBinary

16,472

社区成员

发帖
与我相关
我的任务
社区描述
VC/MFC相关问题讨论
社区管理员
  • 基础类社区
  • Web++
  • encoderlee
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告

        VC/MFC社区版块或许是CSDN最“古老”的版块了,记忆之中,与CSDN的年龄几乎差不多。随着时间的推移,MFC技术渐渐的偏离了开发主流,若干年之后的今天,当我们面对着微软的这个经典之笔,内心充满着敬意,那些曾经的记忆,可以说代表着二十年前曾经的辉煌……
        向经典致敬,或许是老一代程序员内心里面难以释怀的感受。互联网大行其道的今天,我们期待着MFC技术能够恢复其曾经的辉煌,或许这个期待会永远成为一种“梦想”,或许一切皆有可能……
        我们希望这个版块可以很好的适配Web时代,期待更好的互联网技术能够使得MFC技术框架得以重现活力,……

试试用AI创作助手写篇文章吧