手持两把锟斤拷,口中疾呼烫烫烫

news2025/1/19 11:26:19

大家好,我是可乐。

你是否有过在网页上看到一堆乱码,完全不知所云的经历?或者你试图打开一个文档,结果看到的都是奇怪的字符?这背后的元凶,很可能是字符编码。

这听起来像是一个高深的计算机名词,但实际上,不管你是学计算机或者不是学计算机的,它关乎我们每个人。

想象一下,你有没有经历过这样一个场景,你在与一个朋友进行通信,但是你们之间的距离很远,所以你们决定使用一种信号方式。你们都决定:把手举高意味着“是”或“好的”,把手放低意味着“不是”或“不好”。这就是一个简单的“编码”或“约定”:你们赋予特定的手势以特定的意义。

回到计算机这边,计算机原生只理解高低电平,只能识别二进制(0和1)。但我们人类使用的文本是字符、字母、数字和其他符号。所以,我们需要一个方法来告诉计算机:“嘿,当我给你这一串01时,我其实是想表示字母A。”这就是字符编码的起源。

1、ASCII:电脑与英文的桥梁

于是,ASCII出现了。这是一个简单的编码表,用来告诉计算机:“嘿,当我说‘A’时,你可以用1000001这串数字来表示。”就这样,英文与计算机之间的沟通桥梁被架起。

2、ISO-8859-1:西欧的声音

但英文并非唯一的语言。欧洲有很多其他的语言和符号。为此,ISO-8859-1出现了,它包含了大部分西欧语言的字符。

3、东方字符与编码的挑战

东方的文字千变万化,尤其是中文,每一个汉字都是一个小故事。但如何将它们“翻译”给只懂0和1的计算机呢?

3.1 GB2312、GBK:中文的数字化尝试

中国的工程师们没有退缩。他们创建了GB2312和GBK编码,试图用数字语言告诉计算机每一个汉字的样子。

3.2 Big5:台湾与香港的文字编码

而在台湾和香港,Big5编码则担任这个重要任务。

4、Unicode:全球统一的解决方案

但随着时间的流逝,人们意识到:我们需要一个全球通用的字符编码,而不是每个地方都有自己的编码。这就是Unicode的起源。它像是一个超大的“字典”,试图涵盖地球上所有的文字。

4.1 UTF系列:Unicode的实现方式

但是,仅有字典是不够的。我们还需要一种方法,让计算机能读懂这个字典。因此,UTF-8、UTF-16和UTF-32这几种“翻译方法”应运而生。

尤其是UTF-8,几乎成为了互联网的通用语言,因为它既能理解简单的英文字符,也能表达复杂的汉字或其他符号。

5、Unicode和UTF的区别

这里我重点说一下这两者的区别。

理解“UTF”与“Unicode”的区别是理解字符编码的关键之一。这两个词经常被人们混淆,但它们的目标和功能是有所区别的。

  1. Unicode
    • 定义:Unicode是一个字符集(CharacterSet)。它定义了每一个字符在计算机中的唯一数字编号。
    • 目的:为世界上的每一种字符分配一个唯一的编号,无论这个字符是什么语言,什么平台,什么程序,什么设备。
    • 例子:在Unicode中,“A”对应的编号是U+0041,而“中”对应的编号是U+4E2D。
    • 注意:Unicode只是定义了字符和编号的映射关系,但并没有规定如何在计算机中存储这个编号。
  2. UTF (Unicode Transformation Format)
    • 定义:UTF是一系列的字符编码方案,描述了如何在计算机中存储和传输由Unicode指定的数字编号。
    • 种类:主要有三种UTF编码方案:UTF-8、UTF-16和UTF-32。数字(如“8”,“16”或“32”)代表每个字符使用的位数的基本单元。例如,UTF-8使用8位(1字节)为基本单元,但某些字符可能会使用多个字节。
    • 例子:在UTF-8中,“A”的存储形式是41(十六进制),而“中”的存储形式是E4 B8 AD(十六进制)。
    • 优势:UTF-8尤为重要,因为它是兼容ASCII的,且在互联网中广泛使用。

简单比喻

想象Unicode是一本“世界语言词典”,其中为每个词(字符)分配了一个唯一的编号。而UTF则是这本词典的“打印格式”,规定了如何在纸上(或者在计算机的存储介质中)呈现这些编号。

总之,Unicode定义了字符与数字之间的关系,而UTF定义了如何存储和传输这些数字。

6、UTF-8如何表示中文?

首先明确一下,UTF-8 是 Unicode 的一种可变长度字符编码。它使用一个到四个字节表示每个符号,取决于符号在 Unicode 中的编号。对于中文字符,UTF-8 通常使用三个字节进行编码。

这是因为中文字符在 Unicode 中的代码点大于 ASCII,但又小于需要四个字节编码的代码点。

要了解如何表示中文字符,我们可以先了解 UTF-8 的编码机制:

  1. 对于单字节的符号,字节的第一位设为0,后面7位为这个符号的 Unicode 代码。这和 ASCII 编码兼容。
  2. 对于 n 字节符号(n>1),第一个字节的前 n 位都设为1,第 n+1 位设为0,后面字节的前两位都设为10。剩下的没有提到的二进制位,全部为这个符号的 Unicode 代码。

现在,我们以中文字符“中”为例,来看它是如何被 UTF-8 编码的:

  1. “中”的 Unicode 代码点为 U+4E2D。
  2. 将这个代码点从十六进制转为二进制,得到 100111000101101
  3. 根据 UTF-8 的编码规则,因为这是一个三字节的编码,所以格式是 1110xxxx 10xxxxxx 10xxxxxx
  4. 填入“中”的二进制编码:11100100 10111000 10101101
  5. 最终,我们得到的 UTF-8 编码(以十六进制表示)为:E4 B8 AD。

所以,当你在一个 UTF-8 编码的文本文件中看到这三个连续的字节 E4 B8 AD,就知道这代表中文字符“中”。

这种编码方式允许 UTF-8 同时具有与 ASCII 编码的兼容性,并能够表示所有的 Unicode 字符。对于中文字符,它通常使用三个字节,但对于某些特别的字符或表情符号,可能需要四个字节。

7、为什么还有乱码?

每次我们在浏览器中打开一个网页,或在计算机上读取一个文档,背后都有一套编码在默默地工作。你可能在某些网页的底部看到过“UTF-8”或“GBK”这样的标签。这其实是告诉计算机:“嘿,这个页面的文字,请按照这种规则来读。”

所以看完上面的,你可能会问,既然我们有了那么多高科技,为什么还会遇到乱码问题?

原因有很多,但最常见的是:文件或网页的原始编码与我们所使用的软件或设备预期的编码不匹配,比如网页是用ISO编码,但是我们是用GBK打开。

这就像我们试图用法语读英文一样,结果自然是不对劲的。

随着当前机器学习、ChatGPT类似AI的兴起,我们也可以期待一下,在不久的将来,你的计算机或手机或许能够自动检测并修复乱码问题,那么【手持两把锟斤拷,口中疾呼烫烫烫】也将成为历史!!!

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

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

相关文章

介绍一些编程语言— Visual Basic 语言

介绍一些编程语言— Visual Basic 语言 Visual Basic 语言 简介 Visual Basic(简称 VB)是美国 Microsoft 公司于 1991 1991 1991 年研制的一种基于图形用户接口的 Windows 环境下的开发工具,是一种面向对象、可视化的新型开发工具&#x…

STM32 CubeMX (Freertos任务:创建、删除、挂起、恢复)

STM32 CubeMX Freertos STM32 CubeMX (Freertos任务:创建、删除、挂起、恢复) STM32 CubeMX Freertos前言一、STM32 CubeMX 配置时钟树配置使能串口,用于用于检查实验现象使用STM32 CubeMX 库,配置Freertos创建任务 二…

antd中Switch组件的使用

<Switch> 是 Ant Design 中的一个组件&#xff0c;用于在开关之间切换。checkedChildren 是 <Switch> 组件的一个属性&#xff0c;用于指定在开关打开时显示的文本或 React 元素。 以下是 <Switch> 组件的基本语法&#xff1a; import { Switch } from ant…

【Vue-Router】路由过渡动效

在 Vue Router 中&#xff0c;你可以通过过渡动效&#xff08;Transition Effects&#xff09;为路由切换添加平滑的过渡效果&#xff0c;从而提升用户体验。过渡动效可以使用 Vue 的 <transition> 组件和 CSS 过渡来实现。 基本使用&#xff1a; 对导航使用动画&#…

【愚公系列】华为云系列之基于ModelBox搭建的AI寻车系统

文章目录 前言一、ModelBox简介1.ModelBox是什么2.AI开发遇到的问题和解决方案一2.1 相关问题2.2 解决方案 3.AI开发遇到的问题和解决方案二3.1 相关问题3.2 解决方案 4.ModelBox的功能5.ModelBox的其他特性6.ModelBox的应用场景 二、ModelBox搭建的AI寻车系统1.案例效果2.环境…

『虫无涯赠书01期』|〖测试设计思想〗

『虫无涯赠书01期』&#xff5c;〖测试设计思想〗 &#x1f498; 赠书 - 《测试设计思想》&#x1f9e1; 内容简介&#x1f49b; 作者简介&#x1f496; 本书内容&#x1f497; 读后感想&#x1f49d; 参与方式 &#x1f498; 赠书 - 《测试设计思想》 购书传送门&#xff1a;测…

应用 - 行为分析篇

前言 以商超项目为例&#xff0c;为了更好的给用户提供服务&#xff0c;我们需要了解到用户喜欢什么&#xff0c;我的产品中哪些是用户感兴趣的&#xff0c;哪些是不感兴趣的。我应该在推荐栏目中给用户推荐的内容是哪些。 基于这些业务场景&#xff0c;我们需要一套行为分析…

STL转GLTF【在线工具】

3DConvert 是一个可以进行3D模型格式转换的在线工具&#xff0c;支持多种3D模型格式进行在线预览和互相转换。 1、STL与GLTF格式简介 STL&#xff08;Stereo Lithography&#xff09;文件是一种用于3D打印的文件格式。它是由3D Systems公司开发的一种二进制文件格式&#xff0…

创意转写,文字催生:介绍有用的录音实时转写功能

我有一个朋友叫小敏&#xff0c;是一名记者。她在采访工作中常常遇到一个难题&#xff1a;采访过程中非常容易错过重要信息&#xff0c;到底要用哪款手机录音实时转写软件才能解决这个问题&#xff1f;于是有一天&#xff0c;她听说了一款神奇的录音转文字软件&#xff0c;决定…

84. 柱状图中最大的矩形(单调栈)

题目链接&#xff1a;力扣&#xff08;LeetCode&#xff09;官网 - 全球极客挚爱的技术成长平台 解题思路&#xff1a; 方法一&#xff1a;暴力解法 矩形的面积由宽和高决定&#xff0c;可以枚举所有的高度&#xff0c;也就是固定高度&#xff0c;然后从当前高度所在的位置向…

创新方案|超越炒作 – 从产品驱动增长PLG到产品驱动销售PLS的务实策略指南

这篇文章探讨从产品驱动增长到产品驱动销售的策略&#xff0c;超越了产品驱动增长的炒作。尽管产品驱动增长模式被认为是科技公司的灵丹妙药&#xff0c;但要取得成功&#xff0c;通常需要结合更传统的企业模式的要素。研究表明&#xff0c;只有少数采用产品驱动增长模式的公司…

生信豆芽菜-ESTIMATE预测免疫评分

网址&#xff1a;http://www.sxdyc.com/immuneEstimateScore 一、ESTIMATE预测免疫评分介绍 ESTIMATE&#xff08;Estimation of STromal and Immune cells in MAlignant Tumor tissues using Expression data&#xff09;是一种用于预测肿瘤免疫评分的计算方法。它通过分析基因…

LC-相交链表(解法2)

LC-相交链表&#xff08;解法2&#xff09; 链接&#xff1a;https://leetcode.cn/problems/intersection-of-two-linked-lists/description/ 描述&#xff1a;给你两个单链表的头节点 headA 和 headB &#xff0c;请你找出并返回两个单链表相交的起始节点。如果两个链表不存在…

生态系统NPP及碳源、碳汇模拟教程

详情点击链接&#xff1a;生态系统NPP及碳源、碳汇模拟教程 一&#xff1a;CASA模型 1.1 碳循环模型 1.2 CASA模型原理 1.3 CASA下载与安装 1.4 CASA注意事项 二&#xff1a;CASA初步操作 2.1 ENVI界面 2.2 ENVI 数据及格式 2.3 基于ENVI的CASA模拟 2.4 CASA结果分析 …

第一张Web及基础与HTTP协议

dns与域名&#xff1a; 网络是基于tcp/ip协议进行通信以及链接 应用层——传输层——网络层——数据链路层——物理层 ip地址&#xff0c;我们每一台主机&#xff0c;都有唯一的地址标识&#xff08;固定的ip地址&#xff09; ip地址的作用&#xff1a; 1&#xff0c;区分用…

一阶RC低通滤波器[原理详细推导]

注意这里面的截止频率 因为前面的推导中的复阻抗里面多了一个f 这里的的函数是: 其中: f为输入信号的频率,f_B为滤波器的截止频率。 该函数的相位角φ&#xff0c;&#xff08;为其argument的反余弦值&#xff09;: 将函数带入有: Re(H(f)) Im(H(f)) 相位角φ为: φ…

重组金黄色葡萄球菌蛋白A(Recombinant Staphylococcal Protein A, r-SPA)——一种基因工程重组蛋白

品 名&#xff1a;重组金黄色葡萄球菌蛋白A&#xff08;Recombinant Staphylococcal Protein A, r-SPA&#xff09;规 格&#xff1a;1 mg&#xff0c;10 mg&#xff0c;100 mg&#xff0c;500 mg&#xff0c;特殊订制产品形式&#xff1a;冷冻干粉&#xff1b;冻干前缓冲…

ATFX汇市:澳洲联储公布会议纪要,美元指数重归103上方

环球汇市行情摘要—— 昨日&#xff0c;美元指数上涨0.29%&#xff0c;收盘在103.17点&#xff0c; 欧元贬值0.37%&#xff0c;收盘价1.0907点&#xff1b; 日元贬值0.41%&#xff0c;收盘价145.55点&#xff1b; 英镑贬值0.06%&#xff0c;收盘价1.2687点&#xff1b; 瑞…

软考高项-思维导图34-36(计算机高级系统项目管理师)

陆续更新一些软考高项的思维导图&#xff0c;都是一些必背知识点&#xff0c;希望可以帮助大家早日考过高项&#xff0c;早日当上高工&#xff0c;早日成为杭州E类人才。全部完整导图快速获取链接&#xff1a;计算机高级系统项目管理师-思维导图汇总 三十四、需求按层次分 三十…

ReBel 论文学习笔记

论文&#xff1a;《Combining Deep Reinforcement Learning and Search for Imperfect-Information Games》 地址&#xff1a;https://arxiv.org/abs/2007.13544v2 代码&#xff1a;https://github.com/facebookresearch/rebel 材料&#xff1a; BV1gt4y1k77C&#xff08;1小时…