VS2005嵌入式编程需要UNICODE编码,原来VC6.0编程时没有设置UNICODE可以正常显示汉字,现在CString中存的文件中读到的汉字不可以正常显示为乱码,不知如何转换成UNICODE编码嵌入式UnicodeVisual Studio 2005编程
解决方案 »
- Radio的问题
- 高分求助:CListViewCtrl响应消息 LVN_COLUMNCLICK 消息映射NOTIFY_HANDLER填写问题,详见内容
- 非队列化消息的处理。这时候消息处理函数是被谁调用的?
- 一个挺难的问题,如果用键盘钩子的话,能不能识别是那个键盘的按键呢?(我的机器上有2个键盘)
- 互斥对象问题
- 我想让它和在WINDOWS中一样,自动打开那个标题为"打开方式..."的对话框来选择程序,请问该如何做?
- ADO访问SQL SEVER数据库问题
- 怎样在MFC中声明全局变量???急,在先等!
- 对话框打印预览的分页问题
- "CXX0033 Error: error in OMF type information"如何解决???
- 如何在C++和javascript间传值?
- 通过代码UpdateResource修改其他程序的版本号(或其他资源)不成功
CStdioFile file;
CString strText = _T("");
CString Str1=_T("");
int n=0;
if (!file.Open(_T(".\\NandFlash\\集中器列表.txt"), CFile::modeRead))
{
::AfxMessageBox(_T("文件打开失败。"));
return 0;
}
m_listptr.ResetContent();
while (file.ReadString(strText))
{
n=strText.Find(_T(":")); // 找字符串中是否有:符号,返回:前字符的个数
Str1=strText.Left(n); // 取.符号左边的字符串
m_listptr.AddString(Str1);
}
file.Close();
列表中显示的汉字为乱码,数字符号正常
txt文件内容如下
小区1号#701公用变:123450
小区2号#105公用变:123451
小区3号#183公用变:123452
小区4号#039公用变:123453
文化中心007公用变:123454
_T("")用SetLocale 设置下语言
怎么读?要用fopen和fgets吗?
你首先要确认, 你的文件中保存的是ASCII还是UNICODE编码的串. 如果文件中保存的不是UNICODE串, 则需要转码. MultByteToWideChar当然, CString支持自动转换的.char buf[] = "string";
CStringW Str = buf;所以, 如果你的文件中原来保存的就是ascii串, 那么直接以二进制方式打开读取, 然后读取到char数组中, 然后赋值给CString变量即可.
你首先要确认, 你的文件中保存的是ASCII还是UNICODE编码的串. 如果文件中保存的不是UNICODE串, 则需要转码. MultByteToWideChar当然, CString支持自动转换的.char buf[] = "string";
CStringW Str = buf;所以, 如果你的文件中原来保存的就是ascii串, 那么直接以二进制方式打开读取, 然后读取到char数组中, 然后赋值给CString变量即可.