MyUnicodeReader.h

#pragma once
/************************************************************************/
/* 在“多字节字符集”属性的工程中读取Unicode文件
** -----------------------------------注意-------------------------------------------------------
** -------------一定要确保读取的文件是标准的Unicode文件,即文件头两个字节是0xFFFE---------*/
/************************************************************************/
class MyUnicodeReader
{
public:
MyUnicodeReader(void);
~MyUnicodeReader(void);
FILE* file;
bool Open(CString filePath);
void Close();
//按行读取
bool ReadString(CString &s);
};

MyUnicodeReader.cpp

#include "StdAfx.h"
#include "MyUnicodeReader.h"
#include <locale.h>
#include <string> MyUnicodeReader::MyUnicodeReader(void)
{
} MyUnicodeReader::~MyUnicodeReader(void)
{
} bool MyUnicodeReader::Open( CString filePath )
{
file=fopen(filePath, "rb");
//Unicode文件开始前两个字节应该是FFFE
fseek(file, , SEEK_SET);
return file!=NULL;
} void MyUnicodeReader::Close()
{
fclose(file);
} const int MAX_CHAR_NUM=;
bool MyUnicodeReader::ReadString( CString &s )
{
wchar_t buf[MAX_CHAR_NUM];
if (fgetws(buf, MAX_CHAR_NUM, file)==NULL) return false;
size_t convertedChars = ;
char dst[MAX_CHAR_NUM];
setlocale(LC_CTYPE,"chs");// 处理汉字
wcstombs_s(&convertedChars, dst, MAX_CHAR_NUM, buf, MAX_CHAR_NUM);
s=dst;
return true;
}

非Unicode工程读取Unicode文件的更多相关文章

  1. Maven工程读取properties文件过程

    1.创建需要读取的properties文件 2.在xml文件中加载配置文件 <!-- 加载配置文件 --> <context:property-placeholder locatio ...

  2. Java读取Unicode文件(UTF-8等)时碰到的BOM首字符问题,及处理方法

    转载:https://blog.csdn.net/clementad/article/details/47168573 2015-18-01修改:增加 apache commons io 处理方法. ...

  3. Java读取Unicode文件(UTF-8等)时碰到的BOM首字符问题

    在Windows下用文本编辑器创建的文本文件,如果选择以UTF-8等Unicode格式保存,会在文件头(第一个字符)加入一个BOM标识.   这个标识在Java读取文件的时候,不会被去掉,而且Stri ...

  4. pugixml读取unicode编码的xml文件的做法

    作者:朱金灿 来源:http://blog.csdn.net/clever101 实际上在多字节编码的情况下,即以记事本打开显示的ANSI编码的,如下图: pugixml是可以直接读取中文字符的,示例 ...

  5. 读取unicode日志文件并清除记录的垃圾文件

    //读取unicode文件,并清除记录的垃圾文件 //参数1:日志文件路径 bool ReadFilePath(const wchar_t *DataFilePath) { wchar_t ChBuf ...

  6. 创建Unicode格式的INI文件

    前段时间由于开发一个软件,需要调用别人的接口,虽然我的软件是Unicode编码,对方的模块也是Unicode编码,但是对方提供的接口却是Ansi接口,在非中文系统下,由于涉及到中文路径,导致Ansi和 ...

  7. ASCII与Unicode编码消息写文件浅析

    [文章摘要] ASCII与Unicode是两种常见的字符编码. 它们的表示方法不一样,因而在程序中就要差别处理. 本文基于作者的实际开发经验,对ASCII与Unicode两种字符编码消息的写文件过程进 ...

  8. 登录shell与非登录shell读取文件过程

    登录shell与非登录shell读取文件过程登录:/etc/profile→/etc/profile.d/*.sh        ~/.bash_profile非登录:~/.bash_profile→ ...

  9. NET(C#):关于正确读取中文编码文件

    https://blog.csdn.net/ma_jiang/article/details/53213442 首先如果读者对编码或者BOM还不熟悉的话,推荐先读这篇文章:.NET(C#):字符编码( ...

随机推荐

  1. Linux系统安装LAMP

    说明: 系统版本:Ubuntu14.04-LTS,可以在Ubuntu官网直接下载.Ubuntu其他版本也可安装本方法搭建LAMP环境! 步骤一,安装apache2 1 sudo apt-get ins ...

  2. 错误:The Controls collection cannot be modified because the control contains code blocks (i.e. ). .

    用 <%# %>这种写法是写在数据绑定控件中的,之所以用 <%= %>会出现The Controls collection cannot be modified because ...

  3. python 中文编码问题

    1.文件首#coding=utf-8 作用:为了把文件内容编码python所识别的utf-8,若不指定编码格式,则会出现以下错误: 2. 文件储存指定编码为utf-8 作用:将文件编码成utf-8.如 ...

  4. JQuery选择器细节-遁地龙卷风

    1.层次选择器-子元素选择器 <body> <div> <p>lol</p> <div> <p></p> </ ...

  5. Android Sqlite 数据库版本更新

      Android Sqlite 数据库版本更新 http://87426628.blog.163.com/blog/static/6069361820131069485844/ 1.自己写一个类继承 ...

  6. 设计模式(15)-Facade Pattern

    http://www.cnblogs.com/zhenyulu/articles/55992.html 一. 门面(Facade)模式 外部与一个子系统的通信必须通过一个统一的门面(Facade)对象 ...

  7. UITabBarController的使用和坑

    本人apem 说到UITabBarController, 最首要的坑就是tabbar的图片不显示的问题 1. tabbar上的图片一定要2套以上, 例如一个uitabbaritem的image是 se ...

  8. UDS帧传输

    说明 在UDS协议中,其中有一点我视作为基础,即帧传输.也即是数据传输这一块,在UDS的帧传输中,分为4种: SF单帧 FF第一帧 CF连续帧 FC流控制帧 首先,我们抛开以上的东西,假设一个销售商( ...

  9. bug-android之ActivityNotFoundException

    应用场景:用于安卓的短信发送功能 异常名称:Caused by: android.content.ActivityNotFoundException: No Activity found to han ...

  10. POJ 1995 快速幂模板

    http://poj.org/problem?id=1995 简单的快速幂问题 要注意num每次加过以后也要取余,否则会出问题 #include<iostream> #include< ...