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

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

相关文章

go 指针接收者和值接收者的区别小结

《go指针接收者和值接收者的区别小结》在Go语言中,值接收者和指针接收者是方法定义中的两种接收者类型,本文主要介绍了go指针接收者和值接收者的区别小结,文中通过示例代码介绍的非常详细,需要的朋友们下... 目录go 指针接收者和值接收者的区别易错点辨析go 指针接收者和值接收者的区别指针接收者和值接收者的

售价599元起! 华为路由器X1/Pro发布 配置与区别一览

《售价599元起!华为路由器X1/Pro发布配置与区别一览》华为路由器X1/Pro发布,有朋友留言问华为路由X1和X1Pro怎么选择,关于这个问题,本期图文将对这二款路由器做了期参数对比,大家看... 华为路由 X1 系列已经正式发布并开启预售,将在 4 月 25 日 10:08 正式开售,两款产品分别为华

kotlin中const 和val的区别及使用场景分析

《kotlin中const和val的区别及使用场景分析》在Kotlin中,const和val都是用来声明常量的,但它们的使用场景和功能有所不同,下面给大家介绍kotlin中const和val的区别,... 目录kotlin中const 和val的区别1. val:2. const:二 代码示例1 Java

CSS Padding 和 Margin 区别全解析

《CSSPadding和Margin区别全解析》CSS中的padding和margin是两个非常基础且重要的属性,它们用于控制元素周围的空白区域,本文将详细介绍padding和... 目录css Padding 和 Margin 全解析1. Padding: 内边距2. Margin: 外边距3. Padd

Python将博客内容html导出为Markdown格式

《Python将博客内容html导出为Markdown格式》Python将博客内容html导出为Markdown格式,通过博客url地址抓取文章,分析并提取出文章标题和内容,将内容构建成html,再转... 目录一、为什么要搞?二、准备如何搞?三、说搞咱就搞!抓取文章提取内容构建html转存markdown

Springboot @Autowired和@Resource的区别解析

《Springboot@Autowired和@Resource的区别解析》@Resource是JDK提供的注解,只是Spring在实现上提供了这个注解的功能支持,本文给大家介绍Springboot@... 目录【一】定义【1】@Autowired【2】@Resource【二】区别【1】包含的属性不同【2】@

Java中的String.valueOf()和toString()方法区别小结

《Java中的String.valueOf()和toString()方法区别小结》字符串操作是开发者日常编程任务中不可或缺的一部分,转换为字符串是一种常见需求,其中最常见的就是String.value... 目录String.valueOf()方法方法定义方法实现使用示例使用场景toString()方法方法

分辨率三兄弟LPI、DPI 和 PPI有什么区别? 搞清分辨率的那些事儿

《分辨率三兄弟LPI、DPI和PPI有什么区别?搞清分辨率的那些事儿》分辨率这个东西,真的是让人又爱又恨,为了搞清楚它,我可是翻阅了不少资料,最后发现“小7的背包”的解释最让我茅塞顿开,于是,我... 在谈到分辨率时,我们经常会遇到三个相似的缩写:PPI、DPI 和 LPI。虽然它们看起来差不多,但实际应用

GORM中Model和Table的区别及使用

《GORM中Model和Table的区别及使用》Model和Table是两种与数据库表交互的核心方法,但它们的用途和行为存在著差异,本文主要介绍了GORM中Model和Table的区别及使用,具有一... 目录1. Model 的作用与特点1.1 核心用途1.2 行为特点1.3 示例China编程代码2. Tab

如何自定义Nginx JSON日志格式配置

《如何自定义NginxJSON日志格式配置》Nginx作为最流行的Web服务器之一,其灵活的日志配置能力允许我们根据需求定制日志格式,本文将详细介绍如何配置Nginx以JSON格式记录访问日志,这种... 目录前言为什么选择jsON格式日志?配置步骤详解1. 安装Nginx服务2. 自定义JSON日志格式各