文本格式和二进制格式的区别

2024-02-10 03:12

本文主要是介绍文本格式和二进制格式的区别,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

聊聊字符集,我个人理解不管是文本数据UTF-8、GBK编码格式还是二进制数据,其实内存存储的永远都是“01”数据。二进制存储就是将内存“01”数据拷贝到磁盘里。文本在内存中也是“01”数据,存储文本数据就是将“01”数据拷贝到磁盘里。所以存储过程是一样的。不一样的是解析数据的过程,二进制存储的数据通常是一个结构体对象,因此需要对应的结构体来载入磁盘数据。而UTF-8的数据,就需要UTF-8的字符映射表来解析数据。

您的理解是正确的。无论是文本数据(如UTF-8、GBK等编码格式)还是二进制数据,它们在计算机内存中的最终表示都是基于二进制(即“0”和“1”的序列)。这些二进制数据是计算机处理信息的基础。

存储过程

在存储数据时,无论是文本还是二进制数据,计算机都会将这些数据转换为二进制格式,并存储在磁盘上。对于文本数据,如UTF-8或GBK编码的文本,这些编码方案定义了如何将字符映射到二进制序列。例如,UTF-8编码使用1到4个字节来表示一个字符,而GBK编码则使用1到2个字节。

解析数据的过程

当从磁盘读取数据时,计算机需要知道如何将这些二进制数据转换回原始的数据格式。对于二进制数据,这通常意味着需要一个与原始数据结构相匹配的结构体或类来解析数据。这是因为二进制数据通常包含有关数据结构和类型的信息,这些信息对于正确解析数据是必要的。

对于文本数据,解码过程需要使用相应的字符编码映射表(如UTF-8字符映射表)。当读取UTF-8编码的文本时,计算机会使用UTF-8的编码规则来解析二进制数据,将其转换回原始的字符序列。

总结

因此,尽管文本和二进制数据的存储过程在技术上都是将数据转换为二进制并存储在磁盘上,但在解析或读取数据时,它们需要不同的方法来还原原始的数据结构和格式。这是因为文本数据和二进制数据在编码和解码时使用的规则和方法不同。

还有一个细节

平时我们再敲代码的时候,写入"我是帅哥" 这个过程已经开始编码了。例如:搜狗输入法默认的编码格式是UTF-8

string str = "我是帅哥";

我们编辑器大多数情况也是使用UTF-8的格式来显示数据。牛头对马尾,因为才不会出现乱码。

这篇关于文本格式和二进制格式的区别的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



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

相关文章

Python中Windows和macOS文件路径格式不一致的解决方法

《Python中Windows和macOS文件路径格式不一致的解决方法》在Python中,Windows和macOS的文件路径字符串格式不一致主要体现在路径分隔符上,这种差异可能导致跨平台代码在处理文... 目录方法 1:使用 os.path 模块方法 2:使用 pathlib 模块(推荐)方法 3:统一使

C# 委托中 Invoke/BeginInvoke/EndInvoke和DynamicInvoke 方法的区别和联系

《C#委托中Invoke/BeginInvoke/EndInvoke和DynamicInvoke方法的区别和联系》在C#中,委托(Delegate)提供了多种调用方式,包括Invoke、Begi... 目录前言一、 Invoke方法1. 定义2. 特点3. 示例代码二、 BeginInvoke 和 EndI

Java中使用注解校验手机号格式的详细指南

《Java中使用注解校验手机号格式的详细指南》在现代的Web应用开发中,数据校验是一个非常重要的环节,本文将详细介绍如何在Java中使用注解对手机号格式进行校验,感兴趣的小伙伴可以了解下... 目录1. 引言2. 数据校验的重要性3. Java中的数据校验框架4. 使用注解校验手机号格式4.1 @NotBl

MySQL常见的存储引擎和区别说明

《MySQL常见的存储引擎和区别说明》MySQL支持多种存储引擎,如InnoDB、MyISAM、MEMORY、Archive、CSV和Blackhole,每种引擎有其特点和适用场景,选择存储引擎时需根... 目录mysql常见的存储引擎和区别说明1. InnoDB2. MyISAM3. MEMORY4. A

Python批量调整Word文档中的字体、段落间距及格式

《Python批量调整Word文档中的字体、段落间距及格式》这篇文章主要为大家详细介绍了如何使用Python的docx库来批量处理Word文档,包括设置首行缩进、字体、字号、行间距、段落对齐方式等,需... 目录关键代码一级标题设置  正文设置完整代码运行结果最近关于批处理格式的问题我查了很多资料,但是都没

基于Python开发PDF转Doc格式小程序

《基于Python开发PDF转Doc格式小程序》这篇文章主要为大家详细介绍了如何基于Python开发PDF转Doc格式小程序,文中的示例代码讲解详细,感兴趣的小伙伴可以跟随小编一起学习一下... 用python实现PDF转Doc格式小程序以下是一个使用Python实现PDF转DOC格式的GUI程序,采用T

Python如何实现读取csv文件时忽略文件的编码格式

《Python如何实现读取csv文件时忽略文件的编码格式》我们再日常读取csv文件的时候经常会发现csv文件的格式有多种,所以这篇文章为大家介绍了Python如何实现读取csv文件时忽略文件的编码格式... 目录1、背景介绍2、库的安装3、核心代码4、完整代码1、背景介绍我们再日常读取csv文件的时候经常

在Dockerfile中copy和add的区别及说明

《在Dockerfile中copy和add的区别及说明》COPY和ADD都是Dockerfile中用于文件复制的命令,但COPY仅用于本地文件或目录的复制,不支持自动解压缩;而ADD除了复制本地文件或... 目录在dockerfile中,copy 和 add有什么区别?COPY 命令ADD 命令总结在Doc

解读Pandas和Polars的区别及说明

《解读Pandas和Polars的区别及说明》Pandas和Polars是Python中用于数据处理的两个库,Pandas适用于中小规模数据的快速原型开发和复杂数据操作,而Polars则专注于高效数据... 目录Pandas vs Polars 对比表使用场景对比Pandas 的使用场景Polars 的使用

Java中ArrayList和LinkedList有什么区别举例详解

《Java中ArrayList和LinkedList有什么区别举例详解》:本文主要介绍Java中ArrayList和LinkedList区别的相关资料,包括数据结构特性、核心操作性能、内存与GC影... 目录一、底层数据结构二、核心操作性能对比三、内存与 GC 影响四、扩容机制五、线程安全与并发方案六、工程