开发必备基础知识【字符编码合集】

news2024/11/18 17:32:42

开发必备基础知识【字符编码合集】

大家在日常开发交流中会发现,别人那里运行的好好的文件,在你电脑上却无法编译,甚至出现一堆莫名其妙的字符,比如:���

  • 程序中经常遇到一些关于乱码的问题,而产生乱码的原因就是因为计算机直接存储字符时要把字符转为二进制,这其中不同的转换规则就对应不同的编码方式,所以要不出现乱码就必须编码方式和解码方式要保持一致。

在这里插入图片描述

ASCII:表示英文字母、数字、标点符号

是一种使用7个(能表示128个字符)或8个(能表示256个字符,ASCII扩展)二进制位进行编码的方案(美国信息交换标准(代)码),最多可以给256个字符(包括字母、数字、标点符号、控制字符及其他符号)分配(或指定)数值,ASCII码正是最早用来将128字符的编码到计算机里面的一套编码

  • 简介:ASCII是最基本的字符编码标准,它使用7位二进制数来表示128种可能的字符,包括英文大小写字母、数字、标点符号和一些控制字符。
  • 特点:由于只支持128个字符,不包含任何非英语字符,如中文、日文等。

在这里插入图片描述

ISO8859-1(latin-1或西欧语言):在ASCII基础上支持编码拉丁字符

ISO8859-1:又称latin-1或“西欧语言”,是国际标准化组织内iso/iec,是ASCII的扩充,可以编码一些较为生僻的拉丁字符。

  • 简介:ISO8859-1是ISO Latin-1字符集的实现,使用8位编码,扩展了ASCII,额外提供了128个字符,主要用于西欧语言。
  • 特点:虽然比ASCII范围大,但同样不支持中文等多字节字符。

GB2312(属于ANSI):支持简体中文

GB2312也是ANSI编码里的一种,对ANSI编码最初始的ASCII编码进行扩充,当计算机来到中国ISO8859-1就不够用了,为了满足国内在计算机中使用汉字的需要,中国国家标准总局发布了一系列的汉字字符集国家标准编码,统称为GB码,或国标码,几乎所有的中文系统和国际化的软件都支持GB2312。

  • 简介:GB2312是中国国家标准简体中文字符集,使用双字节编码,涵盖了6763个常用汉字及一些其他字符。
  • 特点:专为中国大陆设计,支持简体汉字,但不包括繁体字和大量生僻字。

ANSI:泛指遵循ISO标准的字符集

在不同的上下文中,“ANSI”编码可能有不同的含义。通常在中国大陆,人们提到“ANSI编码”时,实际上指的是GB2312或其后续版本GBK的Windows编码。但在更广泛的意义上,ANSI指代遵循ISO标准的字符集,不特指某一套编码。

GBK:支持简体、繁体中文

GB2312的扩充,把BIG5码的思想融入进来,既可以表示简体中文也可以表示繁体中文,
GBK采用双字节表示。

  • 简介:GBK是对GB2312的扩展,兼容GB2312,增加了对繁体字的支持和其他字符,总共收录了超过2万多个字符。
  • 特点:支持简繁体汉字,适用范围更广。GBK编码专门用来解决中文编码的,是双字节的。不论中英文都是双字节的。

GB18030:支持简体、繁体、少数名族语言(国标码)

  • 简介:GB18030是中国最新的汉字编码国家标准,兼容GBK,并进一步扩展字符集,支持更多的少数民族文字和CJK统一汉字(中日韩统一表意文字),总字符数超过7万个。
    - CJK:代表“中日韩”(Chinese, Japanese, Korean),是指这三个语言共享的一套汉字和其他字符的集合。CJK字符在Unicode中被组织在一起,主要是为了统一编码这些语言中共同使用的汉字,减少编码上的重复。
  • 特点:全面覆盖了Unicode的字符集,是目前最全面的中文编码标准。

BIG5(大五码):台湾厂商制定的繁体中文编码

  • 简介:BIG5是一种主要为繁体中文设计的传统字符编码方案,广泛应用于台湾和香港地区。它使用双字节编码,第一个字节的范围是0x81至0xFE,第二个字节的范围是0x40至0x7E以及0xA1至0xFE,总共可以表示约13053个字符,包括繁体汉字、标点符号、希腊字母、日文片假名等。
  • 特点:BIG5并不支持简体中文字符,且与其他编码系统如GBK或GB18030不兼容。

Unicode:字符编码规范(统一全球编码),比ANSI更全面

  1. Unicode与ANSI关系:
  • 历史背景:在Unicode出现之前,ANSI编码作为地区性编码标准广泛应用于不同国家和地区,用于满足特定语言环境下的字符表示需求。Unicode则是在全球化交流需求增加的背景下,为了解决不同编码系统间的兼容性问题而发展起来的统一字符编码标准。
  • 过渡:随着Unicode的普及,许多系统和应用程序逐渐从使用地区性的ANSI编码转向支持Unicode,以更好地处理国际化的文本数据。在某些情况下,ANSI编码可能被视为Unicode的一个子集或特例,尤其是在指代Windows系统中与本地语言相关的编码时(如简体中文的GBK、繁体中文的BIG5等)
  1. 区别:
  • 编码范围:ANSI编码(实际上是各个地区的特定编码,如GBK、BIG5等)通常只能覆盖有限的语言字符集,每个地区或语言的编码标准不同,而Unicode旨在涵盖地球上所有已知字符,包括各种语言、符号、表情等,拥有超过137,000个字符的位置。
  • 字符表示:ANSI编码大多采用单字节或双字节混合的方式,而Unicode最原始的形式(UCS-2)使用固定两字节表示一个字符,后来的Unicode版本(UTF-16)在基本多语言平面上也是两字节,但扩展字符则需要四字节。UTF-8,作为Unicode的一种实现,使用可变长度编码,从1到4个字节不等。
  • 国际化支持:Unicode由于其广泛的字符覆盖范围,天然支持多语言环境,解决了不同语言文本混排时的编码问题。而ANSI编码因地区而异,不便于跨语言环境的信息交换。
  • 兼容性:ANSI编码与ASCII编码在低字节范围内兼容,但不同ANSI编码间不兼容。Unicode则提供了全球统一的字符映射,提高了跨平台和跨系统的文本兼容性。

UTF-8:Unicode的实现(根据字符不同实现可变长编码)

  • 简洁:UTF-8是Unicode字符集的一种可变长度字符编码方式,是最常用的Unicode实现方式之一,特别是在互联网上。
  • 特点:UTF-8 支持全球几乎所有语言和符号的编码,UTF-8使用1到4个字节来表示一个字符,根据字符的不同,其字节数也随之变化。对于ASCII字符(U+0000至U+007F),UTF-8使用单字节编码,与ASCII编码兼容。这种设计使得UTF-8既高效又兼容性好,适用于存储和传输多语言文本数据。【UTF-8一个英文字符占用一个字节的存储空间,一个中文(含繁体)占用三个字节的存储空间】
  • 拓展utf8mb4:大家在MySQL建表时,会发现有一个utf8mb4编码,这其实是MySQL数据库中对UTF-8编码的一个特定支持形式,主要目的是为了完全支持存储四字节的Unicode字符,特别是包括表情符号(Emoji)在内的补充字符

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

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

相关文章

开发笔记:vue3+ts+vant 卡片数据分页,下拉加载,卡片左滑可删除

效果: 实现 使用vantui组件 van-swipe-cell van-card (商品卡片) 核心代码 const currentPage ref(1) const pageSize ref(4) const totalSize ref(10) const loading ref(false) const finished ref(false) const refreshing ref(…

商务办公优选!AOC Q27E3S2商用显示器,打造卓越新体验!

摘要:助办公室一族纵横职场,实现高效舒适办公! 在日常商务办公中,对于办公室一族来说总有太多“难难难难难点”:工作任务繁琐,熬夜加班心力交瘁、长时间伏案工作导致颈椎、眼睛等出现问题,职业…

SQL Server 2022数据库对象

《SQL Server 2022从入门到精通(视频教学超值版)》图书介绍-CSDN博客 数据库对象是数据库的组成部分,数据表、视图、索引、存储过程以及触发器等都是数据库对象。 (1)数据库的主要对象是数据表,数据表是一…

基于LabVIEW的设备安装螺栓连接设计

介绍了一种基于LabVIEW的辅助设备安装螺栓连接设计案例。通过LabVIEW软件,实现了从螺栓规格预估、强度校核到物料选用的整个流程的软件化,提高了设计效率和安装可靠性。 项目背景 在轨道车辆设备安装中,螺栓连接作为一种常见的紧固方式&…

MSPM0G3507——读取引脚的高低电平方法(数字信号循迹模块)

SYSCFG配置 代码部分 //第一个传感器if( DL_GPIO_readPins(xunji_PORT_PIN1_PORT , xunji_PORT_PIN1_PIN )xunji_PORT_PIN1_PIN) //黑,不亮 高{a1;}if( DL_GPIO_readPins(xunji_PORT_PIN1_PORT , xunji_PORT…

C++开发调试工具:GDB调试,windebug调试,adb调试

我们在C开发过程中时常避免不了要调试追踪,一下介绍最主流的三种调试工具: 一.GDB调试 1.coredump文件: coredump文件是程序异常时系统产生的错误日志文件,即核心转储文件; 编译一个debug程序,必须是debu…

Appium元素定位(全网详细讲解)(二)

1.appium inspector(定位元素的工具)使用方法 详细介绍: 详细解释: 图标名称说明1Show Element Handles是否显示元素句柄2Select Elements选择元素定位3Tap/Swipe By Coordinates按坐标点击/滑动4Download Screenshot下载屏幕截…

Nginx-http_auth_basic_module使用

文章目录 前言一、ngx_http_auth_basic_module二、指令1.auth_basic1.auth_basic_user_file 示例生成密码文件配置basic认证浏览器验证 总结 前言 nginx可以通过HTTP Basic Authutication协议进行用户名和密码的认证。 一、ngx_http_auth_basic_module 生效阶段: …

科普文:如何进行有效沟通

概叙 你会沟通吗? 你知道正确的沟通应该怎么做吗? 在日常生活和工作中,不会沟通带来的困扰是否让你感同身受? 在工作中,你是否因表达不清让观点无法被同事理解和采纳,影响职业发展? 与上级交流是…

GuLi商城-商品服务-API-品牌管理-云存储开通与使用

这里学习下阿里云对象存储 地址:对象存储 OSS_云存储服务_企业数据管理_存储-阿里云 登录支付宝账号,找到了我以前开通的阿里云对象存储 熟悉下API 文档中心 简介_对象存储(OSS)-阿里云帮助中心 我们将用这种方式上传阿里云OSS

C++怎么解决不支持字符串枚举?

首先,有两种方法:使用命名空间和字符串常量与使用 enum class 和辅助函数。 表格直观展示 特性使用命名空间和字符串常量使用 enum class 和辅助函数类型安全性低 - 编译器无法检查字符串有效性,运行时发现错误高 - 编译期类型检查&#xf…

爆破片和安全阀

一、爆破片介绍 爆破片是一种用于安全释放压力的结构,通常应用于压力容器、管道和设备中,以防止由于压力过高而导致的灾难性故障。在压力超过设定值时,爆破片会破裂,从而迅速将过压泄放,保护设备和人员安全 爆破片通常…

Java——IO流(二)-(4/7):不同编码读取乱码的问题,转换流-InputStreamReader、OutputStreamWriter

目录 不同编码读取出现乱码的问题 转换流 InputStreamReader(字符输入转换流) 实例演示(1) OutputStreamWriter(字符输出转换流) 实例演示(2) 不同编码读取出现乱码的问题 如果代码编码和被读取的文本文件的编码是一致的,使用字符流读取文本文件时不会出现乱…

达梦数据库系列—22. DPC集群原理

目录 DPC原理 1、系统原理 2、元数据服务 3、数据存储 4、执行计划的生成 5、计算与存储分离 6、动态增删节点 7、分布式事务一致性 第一阶段 预提交 第二阶段 提交 8、RAFT 归档 9、自动故障处理 DPC原理 计划生成节点(SP):对外…

猫狗图像分类-划分数据集

📚博客主页:knighthood2001 ✨公众号:认知up吧 (目前正在带领大家一起提升认知,感兴趣可以来围观一下) 🎃知识星球:【认知up吧|成长|副业】介绍 ❤️如遇文章付费,可先看…

[FreeRTOS 基础知识] 互斥量 概念

文章目录 基础知识互斥量互斥量与信号量区别优先级反转优先级继承小结 基础知识 [FreeRTOS 基础知识] 信号量 概念 互斥量 互斥量(Mutex,全称:Mutual Exclusion),在计算机科学中,是一种用于防止多个进程同…

大学教师门诊预约小程序-计算机毕业设计源码73068

摘要 在当今数字化、信息化的浪潮中,大学校园的服务管理正朝着智能化、便捷化的方向迈进。为了优化大学教师的医疗体验,提升门诊预约的效率和便捷性,我们基于Spring Boot框架设计并实现了一款大学教师门诊预约小程序。该小程序不仅提供了传统…

压测工具---Ultron

压测工具:Ultron 类型:接口级和全链路 接口级 对于接口级别的压测我们可以进行 http接口压测、thrift压测、redis压测、kafka压测、DDMQ压测、MySQL压测等,选对对应的业务线、选择好压测执行的时间和轮数就可以执行压测操作了 全链路 对…

SAP PS学习笔记01 - PS概述,创建Project和WBS

本章开始学习PS(Project System)。 1,PS的概述 PS(Project System)是SAP企业资源规划系统中的一个关键模块,主要用于项目管理。 它提供了一个全面的框架来规划、控制和执行项目,涵盖了从项目启…

游戏AI的创造思路-技术基础-强化学习(1)

我们“强化”一下机器的“学习”,让机器变得更强~~~~ 目录 1. 强化学习的定义 2. 发展历史 3. 强化学习的基本概念和函数 3.1. 基本概念和函数 3.1.1. 基本概念和函数 3.1.2. Q函数 3.1.2.1. 定义与作用 3.1.2.2. 数学表示 3.1.2.3. 更新规则 3.1.2.4. 算…