6. 常见的文件编码方式及查看网页源码的编码方式

news2024/11/30 18:30:03

6. 常见的文件编码方式及查看网页源码的编码方式

文章目录

  • 6. 常见的文件编码方式及查看网页源码的编码方式
    • 1. 编码的由来
    • 2. 编码的作用
    • 3. 常见的编码方式
    • 4. ASCII码
    • 5. Unicode符号集
    • 6. UTF-8
    • 7. GB2312
    • 8. GBK
    • 9. ISO-8859-1
    • 10. 文件编码查看方式
    • 11. 网页编码查看方式
    • 12. 留言

1. 编码的由来

编码的由来可以追溯到最早的电报通信时期。

在那个时候,人们需要将书写好的信息通过电报传输到远处,但电报线路的带宽有限,不能传输大量的数据。

为了解决这个问题,人们开始使用编码方式,将书写好的信息转换成二进制数字,通过电报线路传输。

【示例】

二进制01000001(对应十进制65)表示大写字母A。

二进制01000010(对应十进制66)表示大写字母B。

二进制01000011(对应十进制67)表示大写字母C。

由于计算机只能识别和处理二进制数字,必须将字符集中的字符转换成二进制数字才能在计算机中进行处理。

因此,计算机中的编码方式也随着发展不断更新和完善。

随着互联网和全球化的发展,人们需要在不同语言和字符集之间进行输入、输出和处理,编码也变得越来越复杂和多样化。

现在,我们已经有了很多种编码方式,每种编码方式都有其特定的应用场景和优缺点。

计算机中最小的存储单位是字节(byte)。

byte[baɪt]:字节。

bytes:字节。

最早的计算机在设计时采用8个比特(bit)作为一个字节(byte)。

bit[bɪt]:比特。

一个字节能表示的最大的整数就是255。

二进制11111111 = 十进制255。

即一个字节最多也只能表示255个字符。

如果要表示更大的整数,就必须用更多的字节。

比如两个字节可以表示的最大整数是65535,4个字节可以表示的最大整数是4294967295。

计算机是美国人发明的,最早只有127个字符被编码到计算机里。

也就是大小写英文字母、数字和一些符号,这个编码表被称为ASCII编码。

比如大写字母A的编码是65,小写字母z的编码是122。

但是要处理中文显然一个字节是不够的,至少需要两个字节。

而且还不能和ASCII编码冲突,所以,中国制定了GB2312编码,用来把中文编进去。

但有人又觉得太多的编码导致世界变得过于复杂了。

为了统一方便,所有语言的字符都用同一种字符集来表示,这就是Unicode字符集。

有了编码就得有解码。

就像美国人和中国人沟通,就需要一个翻译。

解码就是一个翻译,将编码翻译成双方都能懂的语言。

而各种编码方式其实就是一部部字典。

2. 编码的作用

编码是将字符集中的字符转化为计算机可以识别和处理的二进制数字的过程。

它的作用主要有以下几个方面:

【存储和传输】

计算机只能识别二进制数字,通过编码将字符转换成二进制数字,可以方便地在计算机内存中存储和在网络中传输。

【显示和打印】

通过编码将字符转换成二进制数字,可以在计算机屏幕上显示、打印机上打印出对应的字符。

【处理和计算】

通过编码将字符转换成二进制数字,计算机可以对这些数字进行处理和计算,实现各种功能。

【国际化和多语言支持】

不同国家和地区使用的字符集不同,通过不同的编码方式,可以支持不同语言和字符集的输入、输出和处理。

【总结】

编码是计算机中非常重要的一环,它为计算机的输入、输出和处理提供了基础和保障。

3. 常见的编码方式

ASCII编码:7位二进制编码,能够表示128个字符。

Unicode编码:16位二进制编码,能够表示65536个字符,包括世界上所有的语言字符。

UTF-8编码:基于Unicode编码,采用可变长度的编码方式。

UTF-16编码:基于Unicode编码,采用16位或32位编码方式。

GBK编码:是一种汉字编码方式,能够表示21003个汉字和图形符号。

GB2312编码:是GBK编码的前身,只能表示6763个常用汉字。

Big5编码:是一种繁体中文编码方式,主要用于台湾、香港等地区。

4. ASCII码

ASCII码全称American Standard Code for Information Interchange(美国信息交换标准代码)。

Standard [ˈstændəd]:标准。

code[kəʊd]:密码。

Information[ˌɪnfəˈmeɪʃn]:信息。

Interchange [ˈɪntətʃeɪndʒ]:交换。

ASCII码是美国在19世纪60年代的时候为了建立英文字符和二进制的关系时制定的编码规范。

它用一个字节来表示具体的字符,但它只用后7位来表示字符(2^7=128),最前面的一位统一规定为0。

5. Unicode符号集

为了自己的语言能在计算机中正常显示,每个国家和地区都有各自的编码,所以编码多了谁也不认识对方的编码,这时候ISO组织就提出了一种新的编码叫UNICODE编码让全球的文化、字符、符号都能支持。

Unicode:统一字符标准。

Unicode在制定时计算机容量已不是问题,所以设计成了固定两个字节,所有的字符都用16位表示,包括之前只占8位的英文字符等,所以会造成空间的浪费,因此Unicode在很长的一段时间内都没有得到推广应用。

因为每个国家和地区都有各自的编码,同一个二进制数字可以被解释成不同的符号。

因此,要想打开一个文本文件,就必须知道它的编码方式,否则用错误的编码方式解读,就会出现乱码。

为什么电子邮件常常出现乱码?就是因为发信人和收信人使用的编码方式不一样。

而Unicode就是这样一种编码:它包含了世界上所有的符号,并且每一个符号都是独一无二的。

比如,U+0639表示阿拉伯字母Ain,U+0041表示英语的大写字母A,U+4E25表示汉字“严”。

很多人都说Unicode编码,但其实Unicode是一个符号集(世界上所有符号的符号集),而不是一种新的编码方式。

但是正因为Unicode包含了所有的字符,而有些国家的字符用一个字节便可以表示,而有些国家的字符要用多个字节才能表示出来。

【因此产生了两个问题】

  1. 如果有两个字节的数据,那计算机怎么知道这两个字节是表示一个汉字还是表示两个英文字母呢?

  2. 因为不同字符需要的存储长度不一样,那么如果Unicode规定用2个字节存储字符,那么英文字符存储时前面1个字节都是0,这就大大浪费了存储空间。

【上面两个问题造成的结果是】

  1. 出现了unicode的多种存储方式,也就是说有许多种不同的二进制格式,可以用来表示unicode。

  2. unicode在很长一段时间内无法推广。

6. UTF-8

互联网的普及,强烈要求出现一种统一的编码方式。

UTF-8就是在互联网上使用最广的一种unicode的实现方式。

UTF-8最大的一个特点,就是它是一种变长的编码方式。

UTF-8的编码规则如下:

UTF-8采用了一种变长技术,每个编码区域有不同的字码长度,不同类型的字符可以由1-6个字节组成。

UTF-8对ASCII字符使用单字节存储,单个字符损坏也不会影响后面的字符,所以UTF-8非常适合在网络上面传统,也是现在使用最广泛的编码之一。

如果要表示中文,UTF-8编码效率要低于GBK,高于UTF-16,所以它也是除了GBK之外最理想的编码方式。

7. GB2312

GB2312的全称是《信息技术中文编码字符集》。

GB2312是双字节编码,如果字符在ASCII字符集中,便采用单字节编码,编码范围是A1-F7,其中A1-A9是符号区,总共包含682个符号;B0-F7是汉字区,包含6763个汉字。

GB2312主要用于计算机系统中的汉字处理。

GB2312主要收录了6763个汉字、682个符号。

GB2312覆盖了汉字的大部分使用率,但不能处理像古汉语等特殊的罕用字,所以后来出现了像GBK、GB18030这种编码。

8. GBK

GBK的全称是《汉字内码扩展规范》。

GBK,全称为Chinese Internal Code Specification,即汉字内码扩展规范。

它主要是扩展了GB2312,在它的基础上又加了更多的汉字,它一共收录了21003个汉字。

GBK是向下兼容GB2312编码的,也就是说GB2312编码的汉字可以用GBK正常解码不会出现乱码,但用GBK编码的汉字用GB2312解码就不一定了。

9. ISO-8859-1

ISO-8859-1是一个8位单字节字符集。

在这里插入图片描述

该编码是在ASCII编码的基础上扩展出来的,但它仍然是单字节编码,总共只能表示256个字符。

既然ASCII只能表示128个字符,显示是不能完全表示完的。

所以ISO-8859-1扩展了ASCII编码,在ASCII编码之上又增加了西欧语言、希腊语、泰语、阿拉伯语、希伯来语对应的文字符号,它是向下兼容ASCII编码的。

ISO-8859-1能与ASCII 兼容,同时它的适用范围又较广。

一些协议或软件把它作为一种缺省编码, 当然, 现在更好的选择是 UTF-8。

10. 文件编码查看方式

windows系统查看文件编码方式:

以常见的txt、csv、excel文件为例。

在这里插入图片描述

这三种类型的文件都可以用相同的方法查看编码。

以查看TXT文件为例:

  1. 单机要打开的文件。

  2. 点击鼠标右键。

  3. 点击【打开方式】。

  4. 点击【记事本】。

在这里插入图片描述

  1. 点击【文件】。

  2. 点击【另存为】。

在这里插入图片描述

在弹出的窗口底部就可以看到该文件的编码为UTF-8

在这里插入图片描述

11. 网页编码查看方式

  1. 在360浏览器中输入网址:https://www.baidu.com/

  2. 按【F12】快捷键。

  3. 点击【元素】。

  4. 按【ctrl+F】后出现一个搜索框。

  5. 在搜索框中输入【charset】。

charset [t’ʃɑ:set]:字符集,编码,字符编码。

  1. 黄色字体后面的utf-8就是网页编码方式。

charset=utf-8

在这里插入图片描述

12. 留言

【文章参考链接】

1. 字符集与编码(八) ASCII 和 ISO-8859-1

2. ASCII码、ISO8859-1、Unicode、GBK和UTF-8 的区别

3.推荐阅读:字符编码笔记:ASCII,Unicode 和 UTF-8

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/625733.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

【学习日记2023.6.9】之 SpringCloud入门

文章目录 SpringCloud1. 认识微服务1.1 单体架构1.2 分布式架构1.3 微服务1.4 SpringCloud1.5 总结 2. 服务拆分和远程调用2.1 服务拆分原则2.2 服务拆分示例2.2.1 导入Sql语句2.2.2 导入demo工程 2.3 实现远程调用案例2.3.1 案例需求:2.3.2 注册RestTemplate2.3.3 …

计算机组成原理——总线,输入输出系统

文章目录 **一 总线概述****1 总线基本概念****1.1 定义****1.2 总线设备****1.3 总线特性** **2 总线的分类****2.1 片内总线****2.2 系统总线****2.3 I/O总线****2.4 通信总线** **3 系统总线的结构****3.1 单总线结构****3.2 双总线结构****3.3 三总线结构** **4 常见的总线…

TextDiffuser: Diffusion Models as Text Painters

TextDiffuser: Diffusion Models as Text Painters (Paper reading) Jingye Chen, HKUST, HK, arXiv2023, Cited: 0, Code, Paper 1. 前言 扩散模型因其出色的生成能力而受到越来越多的关注,但目前在生成准确连贯的文本方面仍存在困难。为了解决这个问题&#xf…

chatgpt赋能python:Python怎么进行302跳转以提高SEO

Python怎么进行302跳转以提高SEO 在进行搜索引擎优化时,重点是提高网站的排名和流量。其中一个关键的因素就是网页的重定向。在Python中,使用302重定向可以为您的网页提供更好的SEO效果。 什么是302跳转? 302跳转指的是HTTP状态码302 Foun…

chatgpt赋能python:Python教程:如何使用Python在U盘上新建文件?

Python教程:如何使用Python在U盘上新建文件? 如果您是一名经验丰富的Python开发人员,那么您可能已经使用Python进行过很多任务。但是,您是否曾经问过自己如何在U盘上使用Python来新建文件?这篇文章将带您逐步了解如何…

chatgpt赋能python:Python中如何使用正弦函数进行数学计算

Python中如何使用正弦函数进行数学计算 正弦函数是数学中经常使用的一种三角函数,可用于测量角度和距离等。Python是一种可以跨平台使用的高级编程语言,它具有许多内置函数来进行数学计算。在Python中使用正弦函数,可以通过输入角度或弧度来…

【AI】Ubuntu20.04安装cuda、cuDNN、Anacodna、PyTorch

1、版本选择 1)选择PyTorch版本:2.0.1 2)对应的CUDA版本:11.7或者11.8,选择较新的11.8 3)确定显卡是否支持,使用命令nvidia-smi查看显卡驱动版本及支持的CUDA最高的版本,本人的为12 4)cuDNN版本 选择和CUDA版本对应的最新版本v8.9.1 2、下载 2.1 下载CUDA 各个…

力扣高频SQL50题(基础版)——第九天

力扣高频SQL50题(基础版)——第九天 1 销售分析Ⅲ 1.1 题目内容 1.1.1 基本题目信息1 1.1.2 基本题目信息2 1.1.3 示例输入输出 1.2 示例sql语句 # 找到不在春季销售的产品 然后不是这些的就是符合条件的 # QUARTER 返回日期是第几季度的 SELECT product_id,product_name F…

AJAX:

目录 AJAX简介: 特点: 优点: 缺点: http请求报文和响应报文: AJAX代码实现: 发送get请求: 发送post请求: ​服务器响应json数据: ​AJAX的问题处理&#xff1a…

从零开始:如何用Python建立你的第一个人工智能模型

1. 摘要: 在这篇文章中,我们将介绍如何从零开始使用Python建立你的第一个人工智能模型。无论你是刚接触编程的新手,还是有经验的开发者想进一步探索人工智能领域,这篇文章都将为你提供清晰、详细的指南。我们将一步步探索数据预处…

[分布式锁]:Redis与Redisson

文章目录 1 分布式锁1.1 为什么需要分布式锁?1.1.1 引入业务场景1.1..2 本地锁与分布式锁 1.2 分布式锁核心思想1.3 基于Redis实现分布式锁1.3.1 基于Redis实现分布式锁问题1.3.2 问题时间线分析 2 Redisson入门2.1 Redisson快速实现2.2 开门狗机制2.3 加锁的实现原…

Python手写数字识别

神经网络是手写数字识别中常用的机器学习模型。它由许多神经元组成,每个神经元接收输入并生成输出。在前向传递过程中,神经元计算一些权重和偏移量的线性组合,并将其输入到一个非线性的激活函数中,从而生成神经元的输出。输出层通…

6道常见hadoop面试题及答案解析

Q1.什么是Hadoop?   Hadoop是一个开源软件框架,用于存储大量数据,并发处理/查询在具有多个商用硬件(即低成本硬件)节点的集群上的那些数据。总之,Hadoop包括以下内容:   HDFS(Ha…

Scrum经验性过程

软件开发是一个复杂的活动, 在软件产品开发的过程中不仅存在着需求的不确定性,也存在着技术的不确定性,再加上参与软件开发的主体通常是由多人组成的软件开发团队,加上人的因素,就让整个软件开发的活动变得非常复杂。如…

MySQL的索引详解

1.什么是MySQL的索引 1.1索引的概念 索引是一种特殊的文件,包含着对数据表里所有记录的引用指针。可以对表中的一列或多列创建索引, 并指定索引的类型,各类索引有各自的数据结构实现。 所以索引归根结底只是在做一件事,添加了索…

数据结构-Redis(三)

前面介绍了redis的String和哈希,接下来看看其他的数据结构 List LPUSH:左边放入 RPUSH:右边放入 LPOP:取出左边第一个数,并且移除 RPOP:取出右边第一个数,并且移除 由上操作可以看出&#…

chatgpt赋能python:Python中一行输出的方法

Python中一行输出的方法 Python是一种高级编程语言,其语法简洁、易于阅读、丰富的库和解释器使其成为了众多程序员的选择。在Python中有时需要一行输出多个值、变量或者其他信息,因此在本文中将介绍如何在Python中实现一行输出的方法。 一般的输出方法…

chatgpt赋能python:Python如何一行一行运行?

Python 如何一行一行运行? Python是一门广泛应用于开发Web、科学计算、人工智能等领域的高级编程语言。相比其他编程语言,Python简单易学,语法简洁优雅,拥有许多强大的第三方库和工具。但作为一个新手,可能会对Python…

【复习笔记】FreeRTOS(四) 列表项的插入和删除

本文是FreeRTOS复习笔记的第四节,列表项的插入和删除。 上一篇文章: 【复习笔记】FreeRTOS(三)任务挂起和恢复 文章目录 一、列表和列表项1.1. 列表1.2. 列表项1.3. 迷你列表项 二、实验目的三、测试例程四、实验效果 一、列表和列表项 列表和列表项是F…

Dubbo 注册,调用,通信,容错

Dubbo简化模型 3种开发方式 开发方式 举例 特点 XML配置 等 业务代码零侵入 扩展修改方便 注解方式 EnableDubbo DubboService DubboReference 扩展修改方便 修改需要重新编译代码 API编程 DubboBootstrap ServiceConfig ReferenceConfig应用 业务侵入性大 修改复杂…