首页
社区
课程
招聘
[求助]很奇怪的一个问题,繁体中文,在txt文件里显示正确,但是读到缓冲区之后是乱码。具体看代码
发表于: 2008-9-27 20:04 4126

[求助]很奇怪的一个问题,繁体中文,在txt文件里显示正确,但是读到缓冲区之后是乱码。具体看代码

2008-9-27 20:04
4126
很奇怪的一个问题,繁体中文,在txt文件里显示正确,但是读到缓冲区之后,invoke SetDlgItemText,hWnd,1000,hmem 发送到EDITTEXT控件,繁体中文就变成乱码了。怎么解决呢?

[培训]《安卓高级研修班(网课)》月薪三万计划,掌握调试、分析还原ollvm、vmp的方法,定制art虚拟机自动化脱壳的方法

上传的附件:
收藏
免费 0
支持
分享
最新回复 (3)
雪    币: 454
活跃值: (1673)
能力值: ( LV3,RANK:30 )
在线值:
发帖
回帖
粉丝
2
你用十六进制工具打开ReadMe.txt,可以看到头3个字节是EF BB BF,说明这个txt是UTF-8编码的,你用SetDlgItemTextA输出自然乱码了,用记事本把txt另存为ASCII格式的就可以了
2008-9-27 20:56
0
雪    币: 796
活跃值: (370)
能力值: ( LV9,RANK:380 )
在线值:
发帖
回帖
粉丝
3
_WriteFile proc _lpbuff:DWORD,lpfilepath:DWORD
            invoke        CreateFile,lpfilepath,GENERIC_WRITE or GENERIC_READ,FILE_SHARE_READ or FILE_SHARE_WRITE,\
                        0,OPEN_ALWAYS,FILE_ATTRIBUTE_NORMAL,0
            mov        @hFiledaka,eax
            invoke        SetFilePointer,@hFiledaka,0,NULL,FILE_END
            invoke        lstrlen,_lpbuff
            mov        @dwWritedaka,eax
            invoke  WriteFile,@hFiledaka,_lpbuff,@dwWritedaka,addr @dwWritebyte1,NULL
            invoke        CloseHandle,@hFiledaka
            ret
_WriteFile endp

问题是,ReadMe.txt我是用上面这个函数创建的,怎么会成了UTF-8编码呢。
2008-9-27 21:22
0
雪    币: 454
活跃值: (1673)
能力值: ( LV3,RANK:30 )
在线值:
发帖
回帖
粉丝
4
这个不是创建文件函数的问题,而是_lpbuff的问题,检查你的_lpbuff是哪来的,你试着输出_lpbuff的前3个字节看看,应该是EF BB BF,有这3个字节,写出来txt就是UTF-8编码
2008-9-28 00:47
0
游客
登录 | 注册 方可回帖
返回
//