课时8:文本和字符集

简介: 本课主要介绍计算机中数据存储的进制形式,着重讲解文本的分类,包括纯文本和富文本的区别,同时深入探讨字符集的概念、常见字符集及其特点,以及乱码问题产生的原因和解决思路。1.计算机底层数据存储进制2.文本的分类和特点3.字符集相关知识

课时8:文本和字符集

 

摘要:本课主要介绍计算机中数据存储的进制形式,着重讲解文本的分类,包括纯文本和富文本的区别,同时深入探讨字符集的概念、常见字符集及其特点,以及乱码问题产生的原因和解决思路。

1.计算机底层数据存储进制

2.文本的分类和特点

3.字符集相关知识


01、 计算机中的数据存储进制


之前我们聊过二进制、十进制、八进制和十六进制。要明确的是,在计算机底层,所有内容都是以二进制形式保存的。我这儿有个小软件,不用你安装,简单看看就行。这软件叫 BinaryViewer(二进制查看器),能直接查看文件的二进制代码。比如我打开当前的README笔记文件,打开后,你会发现展示的都是二进制内容。这就直观地说明了我们编写的文件在计算机底层是以二进制形式存储的,大家看一眼有个印象就行。

image.png

 

02、 文本的分类及特点

 

接下来讲讲文本的概念。我们日常写的东西都可以叫做文本。文本主要分为两种类型:纯文本和富文本。

 

2.1纯文本


纯文本只能保存单一的文本内容,无法保存与文本内容无关的信息,像字体、颜色、图片这些都不行。我们常见的Markdown文件就是纯文本,还有在桌面上新建一个名为“hello.txt”的文本文档,在里面写上“ababc”并保存,这也是纯文本。判断一个文件是不是纯文本,就看它能不能保存除文本以外的内容,比如图片、颜色设置、字体大小设置等,如果都不能,那它就是纯文本。

image.png

 

2.2富文本


富文本则可以保存文本以外的内容,像字体样式、颜色、图片等。最典型的富文本就是Word文档。富文本能存储的内容更丰富,从图片、动画到视频,只要有需求都能存进去。

在开发程序的时候,我们使用的是纯文本。一般不会用Word写程序,除非有特殊情况,正常情况下编写代码都是用纯文本。

image.png

 

03、 纯文本的字符编码

 

纯文本内容在计算机底层同样要转换成二进制进行保存,这里就涉及到字符编码。把字符转换为二进制编码的过程叫编码,反过来,将二进制码转换为字符的过程就是解码。这就好比谍战片中,中共地下工作者发电报,发电报时把文字转换成对应的编码发送出去,接收方收到后再把编码转换回文字,这就是解码。

在编码和解码过程中,要遵循一定的规则,这个规则在计算机里被称为字符集。下面列举一些常见的字符集:

image.png

1ASCII

ASCII是美国人发明的编码,用七位来对美国常用字符进行编码。七位二进制数,不同组合方式共有128种,所以ASCII里有128个编码。美国的英文字母大小写加起来是52个,再加上各种符号,128个编码刚好够用。它是最早的编码,位数最少,只有七位。

2ISO8859-01

这是欧洲的编码标准,使用八位二进制数进行编码。因为欧洲语言相对更复杂,字符和符号更多,所以比ASCII多了一位。多一位就意味着编码数量增加一倍,一共有256个字符,它包含了ASCII的128个字符。

3GB2312和GBK

这些是中国的国标码,“GB”是“国标”的拼音缩写。它们把中文文字编进去,用来表示中文。但GB2312和GBK也有缺点,只包含常用中文,一些生僻字在里面没有。以前办理身份证时,如果名字里有生僻字,就打不出来,只能手写,这就是这些编码的局限性。

4Unicode

Unicode也叫万国码,它包含了世界上所有的语言和符号,是最全的编码。打开Unicode编码表,你能看到里面有各种各样的符号,包括中文和其他各国的文字符号。如果希望代码在世界上通用,有良好的兼容性,编写程序时一般会使用Unicode编码。

Unicode有多种实现方式,比如UTF-8、UTF-16和UTF-32。UTF-32固定使用四个字节来表示一个字符;UTF-16使用2-4个字节来表示,是变长的;UTF-8同样是变长的,使用1-5个字节来表示字符。在实际应用中,我们最常用的是UTF-8编码,以后开发时,一般使用的编码字符集就是UTF-8。

 

04、 乱码问题及解决

 

在编写程序时,如果代码出现乱码情况,就要马上去检查字符集是否正确,很可能是字符集设置错误。比如编码用的是GB2312,解码却用UTF-8,这样就会乱码。遇到乱码问题,就要检查字符集是否正确,不同的文本编辑方式修改字符集的方法不同,后续遇到相关问题我们再详细演示。以上就是关于进制、文本类型、字符集以及乱码问题的相关内容,之后我们会进一步探讨如何使用纯文本进行编程。

相关文章
|
前端开发
什么是精灵图?
什么是精灵图?
909 0
|
弹性计算 Cloud Native 5G
藏经阁2023年书籍推荐
好书一起看,技术干货学习就上藏经阁。藏经阁收录内容涵盖编程语言、云原生、数据库、大数据、AI等热门技术领域,让开发者们享受阅读优质内容。这次为您带来2023年4月至2024年1月的书籍推荐。
2293 5
|
6月前
|
人工智能 达摩院 云计算
玄铁 C950 发布!龙蜥社区加速 RISC-V 云计算落地
介绍龙蜥社区制定的 2025 年至 2030 年的五年发展规划,深入阐述龙蜥如何助力和加速RISC-V在云计算场景的落地。
|
网络虚拟化
配置OptionC方式跨域VPN示例
本文介绍了跨域BGP/MPLS IP VPN的配置方法。公司总部(CE1)与分部(CE2)分别通过不同运营商AS10和AS20接入,同属vpn1。配置思路包括:1) 配置IGP协议实现骨干网互通;2) 配置MPLS基本能力和LDP建立LSP;3) 配置VPN实例并绑定接口;4) 建立EBGP对等体交换路由;5) 在ASBR-PE上发布带标签的路由;6) 配置MP-EBGP对等体关系。操作步骤涵盖IP地址配置、MPLS骨干网互通、VPN实例接入及路由验证,确保跨域通信正常。
|
存储 监控 调度
反射内存卡-1
这里简单水一下,更专业的内容,就得更专业的人来搞,这里只能肤浅的描述一下下。
1086 0
反射内存卡-1
|
程序员 编译器 C语言
来,手把手带你写C语言的HelloWorld
本文介绍了如何使用Vscode进行C语言开发,包括安装必要插件、编写Hello World程序及代码解释。Feri强调了注释的重要性,以增强代码可读性和维护性,帮助开发者更好地协作与成长。君志所向,一往无前!
822 1
|
运维 数据挖掘 测试技术
B 端-产品经理 - AxureMost
B端产品经理负责面向企业的产品规划、设计与管理。主要职责包括产品规划与战略制定、需求调研与分析、产品设计与开发、项目管理与推进、产品上线与运营。工作流程涵盖需求收集、产品设计、开发测试、上线推广及运营优化。技能要求包括专业技能、业务理解、沟通协调、数据分析和问题解决能力。
645 3
|
编解码 人工智能 算法
DiffSynth:共建 Diffusion 开源生态
DiffSynth 是一个致力于共建 Diffusion 开源生态的项目,由段忠杰分享。该项目通过 Diffusion 技术回顾、模型生态互联与统一、视频生成技术等多方面探讨了如何构建强大的开源模型生态系统。DiffSynth-Studio 支持多种开源模型,优化计算性能,提供图像和视频生成等功能,并特别加强了对中文的支持。项目还引入了 ControlNet、loRA 等生态模型,实现风格转换和内容修改。未来将聚焦于视频时代的到来,推动视频生成技术的发展。
1559 0
|
数据采集 Python
爬虫练手:某网图书畅销榜排名数据
爬虫练手:某网图书畅销榜排名数据
358 0
AppFlow:通过内网代理访问应用
在使用AppFlow时,若遇到因内部部署或IP限制导致的网络问题,只需准备一台可公网访问的机器,利用AppFlow的内网代理功能即可轻松解决。操作步骤包括:访问AppFlow控制台新建连接器,勾选“内网代理”并选择托管实例。对于RAM用户,需具备相应权限。开启后,所有请求将通过托管实例转发,实现源IP控制。
666 16
AppFlow:通过内网代理访问应用

热门文章

最新文章