VS2008 用CFile对象读取Unicode文本。

2024-03-11 16:58

本文主要是介绍VS2008 用CFile对象读取Unicode文本。,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

Unicode(统一码、万国码、单一码)是一种在计算机上使用的字符编码。Unicode 是为了解决传统的字符编码方案的局限而产生的,它为每种语言中的每个字符设定了统一并且唯一的二进制编码,以满足跨语言、跨平台进行文本转换、处理的要求。



1新建一个记事本文件,输入字符串"0123456789"

文本编码格式是"ANSI" 我们用UltraEdit软件打开它,用十六进制模式显示(或者类似的可以显示16进制编码的软件)。

30 31 32 33 34 35 36 37 38 39

(4位二进制等于一个十六进制,0x30就是8位二进制数00110000,代表一个字节)


2 接着记事本"另存为"的时候可以选择4种编码格式“ANSI”,"Unicode","Unicode big endian ", "UTF-8",这里我们选择"Unicode",并把文件名改为"unicode.txt"

同样用UltraEdit软件打开它,用十六进制模式显示。

FF FE 30 00 31 00 32 00 33 00 34 00 35 00 36 00 37 00 38 00 39 00

为了让计算机认得Unicode编码的文本,我们发现Unicode格式比ANSI格式多加了2个字节的编码 FF FE ,

字符0的ASCII编码是 0x30 (十进制为96),在Unicode里用了2个字节来表示它0x0030。



CFile默认的是二进制的读写模式,如果不清楚什么是“二进制模式”

fopen("1.txt", "b")这个就是“二进制”读写模式。

CFile它不会去管你里面放的是什么,它就按字节数读到你的buffer里面。

Unicode文本就总共11*2 = 22个字节(10个数字编码,1个头编码FFFE)

我用的编译器是VS2008,Unicode环境。

TCHAR在多字节环境里为char,在Unicode里wchar(宽字符 2个字节).

为了符合C风格字符串,字符串最后放2个字节0x00 0x00 

读者可以试试

TStream定位11个宽字符,或者10个宽字符,看看效果如何。

		CFile file(fileDlg.GetPathName(), CFile::modeRead);TCHAR TStream[12] = {0};file.Read(TStream, 11*sizeof(TCHAR));MessageBox(TStream);

 

这篇关于VS2008 用CFile对象读取Unicode文本。的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/798446

相关文章

在java中如何将inputStream对象转换为File对象(不生成本地文件)

《在java中如何将inputStream对象转换为File对象(不生成本地文件)》:本文主要介绍在java中如何将inputStream对象转换为File对象(不生成本地文件),具有很好的参考价... 目录需求说明问题解决总结需求说明在后端中通过POI生成Excel文件流,将输出流(outputStre

使用Python实现文本转语音(TTS)并播放音频

《使用Python实现文本转语音(TTS)并播放音频》在开发涉及语音交互或需要语音提示的应用时,文本转语音(TTS)技术是一个非常实用的工具,下面我们来看看如何使用gTTS和playsound库将文本... 目录什么是 gTTS 和 playsound安装依赖库实现步骤 1. 导入库2. 定义文本和语言 3

Python实现常用文本内容提取

《Python实现常用文本内容提取》在日常工作和学习中,我们经常需要从PDF、Word文档中提取文本,本文将介绍如何使用Python编写一个文本内容提取工具,有需要的小伙伴可以参考下... 目录一、引言二、文本内容提取的原理三、文本内容提取的设计四、文本内容提取的实现五、完整代码示例一、引言在日常工作和学

解决Java中基于GeoTools的Shapefile读取乱码的问题

《解决Java中基于GeoTools的Shapefile读取乱码的问题》本文主要讨论了在使用Java编程语言进行地理信息数据解析时遇到的Shapefile属性信息乱码问题,以及根据不同的编码设置进行属... 目录前言1、Shapefile属性字段编码的情况:一、Shp文件常见的字符集编码1、System编码

利用Python实现添加或读取Excel公式

《利用Python实现添加或读取Excel公式》Excel公式是数据处理的核心工具,从简单的加减运算到复杂的逻辑判断,掌握基础语法是高效工作的起点,下面我们就来看看如何使用Python进行Excel公... 目录python Excel 库安装Python 在 Excel 中添加公式/函数Python 读取

Java实现将Markdown转换为纯文本

《Java实现将Markdown转换为纯文本》这篇文章主要为大家详细介绍了两种在Java中实现Markdown转纯文本的主流方法,文中的示例代码讲解详细,大家可以根据需求选择适合的方案... 目录方法一:使用正则表达式(轻量级方案)方法二:使用 Flexmark-Java 库(专业方案)1. 添加依赖(Ma

C#原型模式之如何通过克隆对象来优化创建过程

《C#原型模式之如何通过克隆对象来优化创建过程》原型模式是一种创建型设计模式,通过克隆现有对象来创建新对象,避免重复的创建成本和复杂的初始化过程,它适用于对象创建过程复杂、需要大量相似对象或避免重复初... 目录什么是原型模式?原型模式的工作原理C#中如何实现原型模式?1. 定义原型接口2. 实现原型接口3

Java实现将byte[]转换为File对象

《Java实现将byte[]转换为File对象》这篇文章将通过一个简单的例子为大家演示Java如何实现byte[]转换为File对象,并将其上传到外部服务器,感兴趣的小伙伴可以跟随小编一起学习一下... 目录前言1. 问题背景2. 环境准备3. 实现步骤3.1 从 URL 获取图片字节数据3.2 将字节数组

Javascript访问Promise对象返回值的操作方法

《Javascript访问Promise对象返回值的操作方法》这篇文章介绍了如何在JavaScript中使用Promise对象来处理异步操作,通过使用fetch()方法和Promise对象,我们可以从... 目录在Javascript中,什么是Promise1- then() 链式操作2- 在之后的代码中使

MyBatis的配置对象Configuration作用及说明

《MyBatis的配置对象Configuration作用及说明》MyBatis的Configuration对象是MyBatis的核心配置对象,它包含了MyBatis运行时所需的几乎所有配置信息,这个对... 目录MyBATis配置对象Configuration作用Configuration 对象的主要作用C