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. R语言 小程序

    x<-sample(1:11) x 日期和时间 ###Data and Time### > data_time <- data.frame(data = c("2015-0 ...

  2. Elven Postman(BST )

    Elven Postman Time Limit: 1500/1000 MS (Java/Others)    Memory Limit: 131072/131072 K (Java/Others)T ...

  3. 第四天 rxcocoa

    HackerNewsReaderDemo HackerNewsAPI.sharedApi.newStories() .observeOn(ConcurrentDispatchQueueSchedule ...

  4. phpcms学习的一点心得

    最近,在学习phpcms的二次开发,因为要调试搜索模块程序,需建立若干栏目,按照栏目搜索.这一过程中涉及到phpcms的一个概念:模型. 以前并不太注意这个东东. 经过摸索,发现模型其实也是一个栏目的 ...

  5. ajax验证登录注册

    <form id="form1" onsubmit="return false;"> <table id="login-table& ...

  6. css3常用标签

    30个最常用css选择器解析   你也许已经掌握了id.class.后台选择器这些基本的css选择器.但这远远不是css的全部.下面向大家系统的解析css中30个最常用的选择器,包括我们最头痛的浏览器 ...

  7. js ajax简单使用

    文章部分资源来源:(http://blog.csdn.net/lzkkevin/article/details/6777474)以及(http://www.cnblogs.com/hwx0807/ar ...

  8. backbone调试

    有一个谷歌的扩展程序:https://chrome.google.com/webstore/detail/backbone-debugger/bhljhndlimiafopmmhjlgfpnnchjj ...

  9. [ruby on rails] 深入(2) ruby基本语法

    1. 调试&注释&打印输出 1.1 调试 ruby属于解释型语言,即脚本,在linux上,脚本的执行无非三种: 1. 用解释器运行脚本 解释器 脚本文件 即:ruby  脚本文件 2. ...

  10. phpmyadmin上传大sql文件办法

    进入php5文件夹下: cd /etc/php5/apache2 #根据你当时的配置选择,比如之前配置是apache2就进入apache2,如果是cli就进入cli文件夹下 打开php.ini文件 s ...