VC2008 在UNICODE环境下输出中文字符串

martenyong 2010-01-11 01:30:25
用UNICODE编程向txt中写入中文。
但是用

CString str;
str=_T("你好\n");
file.WriteString(str);

这样写入会出现乱码,
请问如何处理,
谢谢!
...全文
304 17 打赏 收藏 转发到动态 举报
写回复
用AI写文章
17 条回复
切换为时间正序
请发表友善的回复…
发表回复
martenyong 2010-01-11
  • 打赏
  • 举报
回复
谢谢大家,
问题解决了,
用这样的方式

str=_T("你好");
char szANSIString[MAX_PATH];
WideCharToMultiByte(CP_ACP,WC_COMPOSITECHECK,str,-1,szANSIString,sizeof(szANSIString),NULL,NULL);
file.Write(szANSIString,4);

这样就没有问题了
zhou1xp 2010-01-11
  • 打赏
  • 举报
回复
楼主你是学生么,还有这样的要求
martenyong 2010-01-11
  • 打赏
  • 举报
回复
[Quote=引用 12 楼 hongya6088 的回复:]
写文件之前用WideCharToMultiByte转换为多字节字符。
[/Quote]

有没有具体用法的例子啊,
谢了。
我在地球 2010-01-11
  • 打赏
  • 举报
回复
活到老,学到老
ProgrammerNO1 2010-01-11
  • 打赏
  • 举报
回复
WideCharToMultiByte
hongya6088 2010-01-11
  • 打赏
  • 举报
回复
写文件之前用WideCharToMultiByte转换为多字节字符。
zhou1xp 2010-01-11
  • 打赏
  • 举报
回复
那你在读写前做一个UNICODE与ANSI的转换吧
martenyong 2010-01-11
  • 打赏
  • 举报
回复
[Quote=引用 4 楼 zkw0302 的回复:]
引用 3 楼 akirya 的回复:
用C/C++ codevirtualvoid CFile::Write(constvoid* lpBuf,
  UINT nCount
);



可以一试
[/Quote]

试了,
写出的仍然是乱码
martenyong 2010-01-11
  • 打赏
  • 举报
回复
[Quote=引用 6 楼 teleinfor 的回复:]
你的TXT文本用notepad打开另存一下检查下他的编码是不是Unicode。不要是ANSI啊。
[/Quote]

是Unicode没错。
martenyong 2010-01-11
  • 打赏
  • 举报
回复
[Quote=引用 6 楼 teleinfor 的回复:]
你的TXT文本用notepad打开另存一下检查下他的编码是不是Unicode。不要是ANSI啊。
[/Quote]

是Unicode没错。
用户 昵称 2010-01-11
  • 打赏
  • 举报
回复
没写bom头?
teleinfor 2010-01-11
  • 打赏
  • 举报
回复
你的TXT文本用notepad打开另存一下检查下他的编码是不是Unicode。不要是ANSI啊。
sandyandy 2010-01-11
  • 打赏
  • 举报
回复
不会吧
zkw0302 2010-01-11
  • 打赏
  • 举报
回复
[Quote=引用 3 楼 akirya 的回复:]
用C/C++ codevirtualvoid CFile::Write(constvoid* lpBuf,
UINT nCount
);

[/Quote]

可以一试
  • 打赏
  • 举报
回复
virtual void CFile::Write(
const void* lpBuf,
UINT nCount
);

zhou1xp 2010-01-11
  • 打赏
  • 举报
回复
你的TXT的存储方式还是ANSI的吧
xwsn007 2010-01-11
  • 打赏
  • 举报
回复
mark

16,472

社区成员

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

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

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