课时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

(1)ASCII

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

(2)ISO8859-01

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

(3)GB2312和GBK

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

(4)Unicode

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,这样就会乱码。遇到乱码问题,就要检查字符集是否正确,不同的文本编辑方式修改字符集的方法不同,后续遇到相关问题我们再详细演示。以上就是关于进制、文本类型、字符集以及乱码问题的相关内容,之后我们会进一步探讨如何使用纯文本进行编程。

相关文章
|
前端开发
什么是精灵图?
什么是精灵图?
990 0
|
编解码 IDE 算法
2023年电赛---运动目标控制与自动追踪系统(E题)发挥题思路
2023年电赛---运动目标控制与自动追踪系统(E题)发挥题思路
1705 0
|
8月前
|
人工智能 达摩院 云计算
玄铁 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实例接入及路由验证,确保跨域通信正常。
|
4月前
|
Linux iOS开发 MacOS
实用小工具:端口卫士
一款跨平台端口监控工具,界面美观(无边框+磨砂玻璃),支持Win/macOS/Linux。实时扫描监听端口,显示应用名、PID、端口及资源占用,并支持一键终止进程。内置搜索、自动刷新、权限适配与多支付赞助入口。
426 0
|
4月前
|
人工智能 自然语言处理 小程序
Bolt.new 是什么?国内访问 + 替代编程工具完整对比
Bolt.new 是什么?海外火爆的 AI 全栈开发平台,国内为什么用不顺?本文 4000 字详解 Bolt.new 功能、定价、合规风险,并对比秒悟 Meoo、Cursor、通义灵码等国产替代品。
451 0
|
7月前
|
供应链 安全 Java
Java安全漏洞深潜——反序列化、Log4Shell与供应链攻击
由于Java广泛应用于银行、政府、大型企业,其安全性备受瞩目。然而近年来频频爆发的高危漏洞(Log4Shell、Spring4Shell、FastJSON反序列化等)敲响了警钟。
661 7
|
7月前
|
传感器 边缘计算 5G
智慧医疗背景下医院室内导航方案的技术实现与优化
本文针对医院“寻路难”痛点,提出融合蓝牙/UWB/Wi-Fi/惯性传感的多模定位方案,结合数字化室内地图建模与智能路径规划,构建分层架构导航系统,并给出精度校准、快速地图更新、无障碍交互等优化策略,助力智慧医院建设。(239字)
310 0
|
编解码 人工智能 算法
DiffSynth:共建 Diffusion 开源生态
DiffSynth 是一个致力于共建 Diffusion 开源生态的项目,由段忠杰分享。该项目通过 Diffusion 技术回顾、模型生态互联与统一、视频生成技术等多方面探讨了如何构建强大的开源模型生态系统。DiffSynth-Studio 支持多种开源模型,优化计算性能,提供图像和视频生成等功能,并特别加强了对中文的支持。项目还引入了 ControlNet、loRA 等生态模型,实现风格转换和内容修改。未来将聚焦于视频时代的到来,推动视频生成技术的发展。
1612 0
|
监控 程序员 芯片
STM32 你不知道的看门狗细节
你知道什么是看门狗吗?看门狗,实际上可以说就是一个简单的定时器功能,而这个定时器有一个输出端,可以输出复位信号。
1813 88
STM32 你不知道的看门狗细节