MFC在UNICODE环境下,如何读取UNICODE编码形式的TXT文件?

m_Filename是文件名字所在的编辑框变量名
m_readandwrite是用来放读到的内容的编辑框变量名
因为我写入文件的编码形式是UNICODE,但是用读出文件的代码去读会乱码
读出文件的代码读ANSI不会出问题
所以想问怎么读UNICODE的TXT怎么读。。。。
下面是读ANSI的代码。。。

            HANDLE handle = CreateFile(m_Filename, GENERIC_READ,
            FILE_SHARE_READ,
            NULL,
            OPEN_EXISTING,
            FILE_ATTRIBUTE_NORMAL,
            NULL);
        if (handle != INVALID_HANDLE_VALUE) {
            char read[1024];
            DWORD nBytesRead = 0xFEFF;
            while (true) {
                UpdateData(true);
                ZeroMemory(read, 1024);
                BOOL bResult = ReadFile(handle, read, 1024, &nBytesRead, NULL);
                if (bResult && (nBytesRead == 0)) {
                    break;
                }
                CString readstr(read);
                m_readandwrite.Format(readstr);
                UpdateData(false);
            }
            CloseHandle(handle);

2个回答

char read[1024];
->
wchar_t read[1024];

图片说明

qq_23126581
渊渟无迹静涛君 可以采纳了!
一年多之前 回复
Csdn user default icon
上传中...
上传图片
插入图片
抄袭、复制答案,以达到刷声望分或其他目的的行为,在CSDN问答是严格禁止的,一经发现立刻封号。是时候展现真正的技术了!
其他相关推荐
Python+OpenCV计算机视觉

Python+OpenCV计算机视觉

MFC 如何读取UTF-8文件

项目是UNICODE的字符集,现在想读取UTF-8文件并显示UTF-8文件如何编写代码,请各位大神解答 最好具体详细点,本人菜鸟一枚

MFC Unicode编码,如何用Format参数化sql语句

MFC的工程,使用Unicode编码格式,我用ado连接的Oracle数据库,连接是成功的,但是CString sql,使用sql.Format参数化SQL语句时,总是查不到结果 CString sql, str; sql.Format(L"select * from Hrinsurance where %s", str);// 查询 // MessageBox(sql, NULL, MB_OK); ADO ado; _variant_t vFValue; CString strFValue; ado.OnInitDBConnect(); m_insuranceSet = ado.GetRecordSet(_bstr_t(sql)); 应该是编码的问题,请问如何修改,试了几种编码还是不行

VC++ unicode环境下使用textout输出中英文字符

在MFC中,我使用unicode编码,中文字符、数字、英语字符都是双字节, 这样一来,输出中文字符正常,但是英语和数字字符,显示出来也会占两 个字符的宽度,感觉怪怪的! ![图片说明](https://img-ask.csdn.net/upload/201908/18/1566092840_495229.jpg) 我是在TextOut输出时遇到这样的问题,大家有什么好办法吗? 谢谢!

Ansi工程中如何使用Unicode Edit控件?

一个MFC - Ansi工程,比较大,代码很多,加上也不是我写的,所以不要建议我把整个工程转为Unicode了,能走这条路我也不上来提问了。 它里面其中一个对话框,对话框上有个Edit , 是只读的,不用接受用户输入。 我想在这个Edit上显示Unicode字符串,不要叫我把Unicode转换成Ansi再显示,能这样做我也不会上来提问了。 关键是,有些Unicode字符,Ansi 根本显示不出来,出来的都是乱码或问号,比如Unicode编码0x2776,转到Ansi是0x3F,一个问号。 现在,就是想在这个CEdit上显示Unicode字符串,请教解决方案。

MFC POST 请求数据中文乱码

我POST中文后用服务器后台看中文是乱码的,数字和英文是没问题的。我转码也不管事,要疯了!!!求大神来告知一二~~~

在VS2010,Unicode字符集环境下,如何将float类型转换成CString类型?

用format不好使,求指导 或者这样也可以,我想用sprintf函数将几个浮点型的数输入到一个char类型的数组中,然后将该数组转换成LPCTSTR格式,这样才能够插入LISTBOX 控件中,感觉太麻烦,有没有什么好的办法?相关代码如下: ``` char Ana[50]; int num=8; float tcost=1.0394; float tpsnt=33.244; sprintf(Ana,"aa","%d%f%f",num,tcost,tpsnr); m_Ana.Addstring((LPCTSTR)Ana);//m_Ana为LISTBOX控件变量 ``` 代码不报错,但是插入的都是空白。

关于在UNICODE CString转UTF-8

如何Unicode下,将CString转成UTF-8。 例如: CString xx="您好" CSting str=URLEnCode(xx); 转换后的结果:str的内容就是%e6%82

项目字符集由多字节改成UNICODE后 写数据库时Update()出错

m_pRecordset->AddNew(); //添加新记录 m_pRecordset->PutCollect("ORGCODE",_variant_t(m_org_code)); m_pRecordset->PutCollect("SDATE",_variant_t(m_file_date)); m_pRecordset->Update();

关于vs2017中文乱码问题?

``` #include<stdio.h> #pragma warning(disable:4996) #include<stdlib.h> void test() { FILE * fp = fopen("D:\\a.txt", "rb"); if (!fp) { printf("文件打开失败!"); return; } char arr[1024] = { 0 }; fgets(arr, 1024, fp); printf("%s\n", arr); } int main(void) { test(); return 0; } ``` 其中a.txt中由中文文字,在控制台中打印出来的文字是乱码,其他英文都没问题。

文件系统中能否使用utf-16编码

例如创建一个文件"ABCDEF",utf-8编码是"414243444546",utf-16编码是"410042004300440045004600",utf-16编码中有字符是0x00和字符串的结束符区分不了,这样应该怎么处理?

c++读取excel表格并将内容写入xml的几个问题

目前已经用mfc实现从excel中顺序读取内容,并按一定格式写入xml文档的小工具,但还有几个问题,希望有懂得人能来解答一下。1.最终生成的xml文档有语句声明是按GBK格式编码的,那么我的项目基于unicode编码或是多字节编码会对结果有影响吗(主要是担心将字符串写入xml的时候会受字符集影响)。2.若是excel单元格首字符为单引号’,会读取不到这个单引号,这个单引号的作用应该是将单元格设为文本格式,怎么解决呢?3.从excel单元格读取到的内容,我是先存储到_variant_t类型的变量中,再转换格式为CString字符串,最后转为string字符串,然后用fstream文件输出流写到xml文档中,有没有办法可以直接从excel中读取出CString类型的字符串呢?谢谢回答!

VS2010写入TXT文件时,自动给每个字符后加入空格

我用Windows API函数和C运行时库函数将一组字符创写入一个txt文件时,能够成功读写,但是写入的文件每个字符后都自动添加了一个空格, UpdateData(); FILE * fp = fopen("1.txt","w+"); if(fp==NULL) { MessageBox(_T("打开文件失败")); return; } DWORD bytes=m_strTextData.GetLength(); fwrite(m_strTextData,m_strTextData.GetLength(),1,fp); fclose(fp); 比如当我写入的字符串为wertyuui时,文本里显示的是w e r t ,其余的没有读进来,网上查找好像是因为编码的问题,请各位指教。

CWnd::Create 出现afxwin1.inl line21出现问题

首先说下我是在regular mfc dll中调用这个cwnd::create方法的。而且这个代码不是我写的, 是别人写的代码。 ``` m_pWndMessageTarget->CWnd::Create(NULL, _T("cessocket_message_sink"), WS_CHILD, CRect(0, 0, 20, 20), pWndParent, 0); ``` 而且我是用jni,使用java jni来调用这个函数的。 创建这个cwnd是为了实现消息与函数的MAP。 现在我用java jni调试出现这个问题: ![图片说明](https://img-ask.csdn.net/upload/201601/26/1453802140_940632.jpg) _AFXWIN_INLINE HINSTANCE AFXAPI AfxGetResourceHandle() { ASSERT(afxCurrentResourceHandle != NULL);//这里出错! return afxCurrentResourceHandle; } 看了别人的回答,说是unicode编码的问题,有没有大神能解决啊

error MSB4025: 未能加载项目文件。给定编码中的字符无效。

很简单的静态库编译出现了问题 定义了头文件: Function.h void Print(); c++文件:Function.cpp #include "Function.h" void Print(){ std::cout<<"HelloWorld!!!"<<std::endl; } 然后,点击build,报错如下: 1>D:\VS2010WorkSpace\TestLib\TestLib\TestLib.vcxproj(1,1): error MSB4025: 未能加载项目文件。给定编码中的字符无效。 第 1 行,位置 1。 以下是TestLib.vcxproj的内容 <?xml version="1.0" encoding="utf-8"?> <Project DefaultTargets="Build" ToolsVersion="4.0" xmlns="http://schemas.microsoft.com/developer/msbuild/2003"> <ItemGroup Label="ProjectConfigurations"> <ProjectConfiguration Include="Debug|Win32"> <Configuration>Debug</Configuration> <Platform>Win32</Platform> </ProjectConfiguration> <ProjectConfiguration Include="Release|Win32"> <Configuration>Release</Configuration> <Platform>Win32</Platform> </ProjectConfiguration> </ItemGroup> <PropertyGroup Label="Globals"> <ProjectGuid>{13C58112-2513-4B7B-8C69-5CA15D83A6C1}</ProjectGuid> <Keyword>Win32Proj</Keyword> <RootNamespace>TestLib</RootNamespace> </PropertyGroup> <Import Project="$(VCTargetsPath)\Microsoft.Cpp.Default.props" /> <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'" Label="Configuration"> <ConfigurationType>StaticLibrary</ConfigurationType> <UseDebugLibraries>true</UseDebugLibraries> <CharacterSet>Unicode</CharacterSet> </PropertyGroup> <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Release|Win32'" Label="Configuration"> <ConfigurationType>StaticLibrary</ConfigurationType> <UseDebugLibraries>false</UseDebugLibraries> <WholeProgramOptimization>true</WholeProgramOptimization> <CharacterSet>Unicode</CharacterSet> </PropertyGroup> <Import Project="$(VCTargetsPath)\Microsoft.Cpp.props" /> <ImportGroup Label="ExtensionSettings"> </ImportGroup> <ImportGroup Label="PropertySheets" Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'"> <Import Project="$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props" Condition="exists('$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props')" Label="LocalAppDataPlatform" /> </ImportGroup> <ImportGroup Label="PropertySheets" Condition="'$(Configuration)|$(Platform)'=='Release|Win32'"> <Import Project="$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props" Condition="exists('$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props')" Label="LocalAppDataPlatform" /> </ImportGroup> <PropertyGroup Label="UserMacros" /> <PropertyGroup /> <ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'"> <ClCompile> <PrecompiledHeader> </PrecompiledHeader> <WarningLevel>Level3</WarningLevel> <Optimization>Disabled</Optimization> <PreprocessorDefinitions>WIN32;_DEBUG;_LIB;%(PreprocessorDefinitions)</PreprocessorDefinitions> </ClCompile> <Link> <SubSystem>Windows</SubSystem> <GenerateDebugInformation>true</GenerateDebugInformation> </Link> </ItemDefinitionGroup> <ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Release|Win32'"> <ClCompile> <WarningLevel>Level3</WarningLevel> <PrecompiledHeader> </PrecompiledHeader> <Optimization>MaxSpeed</Optimization> <FunctionLevelLinking>true</FunctionLevelLinking> <IntrinsicFunctions>true</IntrinsicFunctions> <PreprocessorDefinitions>WIN32;NDEBUG;_LIB;%(PreprocessorDefinitions)</PreprocessorDefinitions> </ClCompile> <Link> <SubSystem>Windows</SubSystem> <GenerateDebugInformation>true</GenerateDebugInformation> <EnableCOMDATFolding>true</EnableCOMDATFolding> <OptimizeReferences>true</OptimizeReferences> </Link> </ItemDefinitionGroup> <ItemGroup> <None Include="ClassDiagram1.cd" /> <None Include="ReadMe.txt" /> </ItemGroup> <Import Project="$(VCTargetsPath)\Microsoft.Cpp.targets" /> <ImportGroup Label="ExtensionTargets"> </ImportGroup> </Project> 跪求大神指点迷津

使用ODBC连接到MS Access时如何更改连接字符集?

<div class="post-text" itemprop="text"> <p>This is how i connect with database:</p> <pre><code>$dbh = new PDO("odbc:Driver={Microsoft Access Driver (*.mdb, *.accdb)};Dbq=C:\\xampp\\htdocs\\bd\\db\\icr.accdb;Uid=Admin"); </code></pre> <p>In my database I have data and fields with polish characters, so sql query works only when file is encoded in ANSI. But my whole website have charset utf8 (also have lots of polish characters). So, there is any possible way to change charset of database to utf8?</p> <p>I was trying this:</p> <pre><code>$dbh-&gt;exec("set names utf8"); </code></pre> <p>and this:</p> <pre><code>$dbh = new PDO("odbc:Driver={Microsoft Access Driver (*.mdb, *.accdb)};Dbq=C:\\xampp\\htdocs\\bd\\db\\icr.accdb;Uid=Admin", null, null, array( PDO::ATTR_ERRMODE =&gt; PDO::ERRMODE_EXCEPTION, PDO::MYSQL_ATTR_INIT_COMMAND =&gt; "SET NAMES utf8" )); </code></pre> <p>but both didn't work. Any ideas?</p> <p>//don't ask me why I use access database with php -&gt; i have to use it in my university project :/</p> <p>edit: code:</p> <pre><code>&lt;!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd"&gt; &lt;html xmlns="http://www.w3.org/1999/xhtml"&gt;&lt;head&gt;&lt;meta http-equiv="Content-Type" content="text/html; charset=UTF-8"&gt; &lt;body&gt; &lt;?php try{ // Connect $dbh = new PDO("odbc:Driver={Microsoft Access Driver (*.mdb, *.accdb)};Dbq=C:\\xampp\\htdocs\\bd\\db\\icr.accdb;Uid=Admin"); $dbh-&gt;exec("set names utf8"); $sql = "SELECT * FROM Miasta"; $myFile = "testFile.txt"; $fh = fopen($myFile, 'w') or die("can't open file"); foreach ($dbh-&gt;query($sql) as $row) { echo $row['Nazwa'] .' - '. $row['IDWojewództwa'] . '&lt;br /&gt;'; $stringData = $row['Nazwa'] .' - '. $row['IDWojewództwa'] . '&lt;br /&gt;'; fwrite($fh, $stringData); } fclose($fh); /*** close the database connection ***/ $dbh = null; } catch(PDOException $e) { echo $e-&gt;getMessage(); } ?&gt; &lt;/body&gt; &lt;/html&gt; </code></pre> </div>

2019 Python开发者日-培训

2019 Python开发者日-培训

150讲轻松搞定Python网络爬虫

150讲轻松搞定Python网络爬虫

设计模式(JAVA语言实现)--20种设计模式附带源码

设计模式(JAVA语言实现)--20种设计模式附带源码

YOLOv3目标检测实战:训练自己的数据集

YOLOv3目标检测实战:训练自己的数据集

java后台+微信小程序 实现完整的点餐系统

java后台+微信小程序 实现完整的点餐系统

三个项目玩转深度学习(附1G源码)

三个项目玩转深度学习(附1G源码)

初级玩转Linux+Ubuntu(嵌入式开发基础课程)

初级玩转Linux+Ubuntu(嵌入式开发基础课程)

2019 AI开发者大会

2019 AI开发者大会

玩转Linux:常用命令实例指南

玩转Linux:常用命令实例指南

一学即懂的计算机视觉(第一季)

一学即懂的计算机视觉(第一季)

4小时玩转微信小程序——基础入门与微信支付实战

4小时玩转微信小程序——基础入门与微信支付实战

Git 实用技巧

Git 实用技巧

Python数据清洗实战入门

Python数据清洗实战入门

使用TensorFlow+keras快速构建图像分类模型

使用TensorFlow+keras快速构建图像分类模型

实用主义学Python(小白也容易上手的Python实用案例)

实用主义学Python(小白也容易上手的Python实用案例)

程序员的算法通关课:知己知彼(第一季)

程序员的算法通关课:知己知彼(第一季)

MySQL数据库从入门到实战应用

MySQL数据库从入门到实战应用

机器学习初学者必会的案例精讲

机器学习初学者必会的案例精讲

手把手实现Java图书管理系统(附源码)

手把手实现Java图书管理系统(附源码)

极简JAVA学习营第四期(报名以后加助教微信:eduxy-1)

极简JAVA学习营第四期(报名以后加助教微信:eduxy-1)

.net core快速开发框架

.net core快速开发框架

玩转Python-Python3基础入门

玩转Python-Python3基础入门

Python数据挖掘简易入门

Python数据挖掘简易入门

微信公众平台开发入门

微信公众平台开发入门

程序员的兼职技能课

程序员的兼职技能课

Windows版YOLOv4目标检测实战:训练自己的数据集

Windows版YOLOv4目标检测实战:训练自己的数据集

HoloLens2开发入门教程

HoloLens2开发入门教程

微信小程序开发实战

微信小程序开发实战

Java8零基础入门视频教程

Java8零基础入门视频教程

Python可以这样学(第一季:Python内功修炼)

Python可以这样学(第一季:Python内功修炼)

C++语言基础视频教程

C++语言基础视频教程

Python可以这样学(第四季:数据分析与科学计算可视化)

Python可以这样学(第四季:数据分析与科学计算可视化)

网络工程师小白入门--【思科CCNA、华为HCNA等网络工程师认证】

网络工程师小白入门--【思科CCNA、华为HCNA等网络工程师认证】

相关热词 c# 按行txt c#怎么扫条形码 c#打包html c# 实现刷新数据 c# 两个自定义控件重叠 c#浮点类型计算 c#.net 中文乱码 c# 时间排序 c# 必备书籍 c#异步网络通信
立即提问