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对象转换的实现方式汇总

《Java对象转换的实现方式汇总》:本文主要介绍Java对象转换的多种实现方式,本文通过实例代码给大家介绍的非常详细,对大家的学习或工作具有一定的参考借鉴价值,需要的朋友参考下吧... 目录Java对象转换的多种实现方式1. 手动映射(Manual Mapping)2. Builder模式3. 工具类辅助映

如何使用 Python 读取 Excel 数据

《如何使用Python读取Excel数据》:本文主要介绍使用Python读取Excel数据的详细教程,通过pandas和openpyxl,你可以轻松读取Excel文件,并进行各种数据处理操... 目录使用 python 读取 Excel 数据的详细教程1. 安装必要的依赖2. 读取 Excel 文件3. 读

Spring Boot读取配置文件的五种方式小结

《SpringBoot读取配置文件的五种方式小结》SpringBoot提供了灵活多样的方式来读取配置文件,这篇文章为大家介绍了5种常见的读取方式,文中的示例代码简洁易懂,大家可以根据自己的需要进... 目录1. 配置文件位置与加载顺序2. 读取配置文件的方式汇总方式一:使用 @Value 注解读取配置方式二

基于Python实现读取嵌套压缩包下文件的方法

《基于Python实现读取嵌套压缩包下文件的方法》工作中遇到的问题,需要用Python实现嵌套压缩包下文件读取,本文给大家介绍了详细的解决方法,并有相关的代码示例供大家参考,需要的朋友可以参考下... 目录思路完整代码代码优化思路打开外层zip压缩包并遍历文件:使用with zipfile.ZipFil

Python中判断对象是否为空的方法

《Python中判断对象是否为空的方法》在Python开发中,判断对象是否为“空”是高频操作,但看似简单的需求却暗藏玄机,从None到空容器,从零值到自定义对象的“假值”状态,不同场景下的“空”需要精... 目录一、python中的“空”值体系二、精准判定方法对比三、常见误区解析四、进阶处理技巧五、性能优化

C#TextBox设置提示文本方式(SetHintText)

《C#TextBox设置提示文本方式(SetHintText)》:本文主要介绍C#TextBox设置提示文本方式(SetHintText),具有很好的参考价值,希望对大家有所帮助,如有错误或未考虑... 目录C#TextBox设置提示文本效果展示核心代码总结C#TextBox设置提示文本效果展示核心代

在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编码