当前位置: 首页 > news >正文

Unicode/ASCII/UTF的关系(模板字面量、模板字符串、占位符)

字符串:编程时最重要的数据类型之一。

正则表达式:赋予开发者更多操作字符串的能力。

1、 Unicode和ASCII

1.1 概述

Unicode是ASCII字符编码的一个扩展,只不过在Windows中,用两个字节对其进行编码,也称为宽字符集(WideChars)。Unicode字符串有多种编码方式,常见的有UTF-8、UTF-16、UTF-32等,这些编码方式定义了如何将Unicode码点映射到字节序列。

1.2 Unicode和ASCII的关联

最开始,Internet上只有一种字符集----ANSI的ASCII字符集,它使用7bits来表示一个字符,总共表示128个字符,其中包括了英文字母、数字、标点符号等常用字符。

之后,进行了扩展,使用8bits表示一个字符,可以表示256个字符,主要在原来的7bits字符集的基础上加入了一些特殊符号。

再后来,各国语言的加入,ASCII已不能满足信息交流的需要,为了能够表示其他国家的文字,各国在ASCII的基础上制定了自己的字符集,即ANSI字符集(MBCS多字节字符系统),常见的GB-2312就是其中之一。

Unicode的诞生:不同ANSI编码之间互不兼容,为了统一所有文字的编码,Unicode应运而生。Unicode把所有语言都统一到一套编码里。

1.3 ASCII和Unicode的对比

(1)编码范围

  • ASCII : 最早定义了128个字符,用于表示基本的英文字符、数字和一些控制字符。
  • Unicode:是一个更大的字符集,旨在包含世界上几乎所有的书写系统的字符,以及许多其他符号和特殊符号。Unicode目前包含超过130,000个字符。

(2)表示方式

  • ASCII : 每个字符用一个字节(8位)表示。
  • Unicode:最初采用了两个字节(16位)的表示方式,但随后由于字符数量的增加,也引入了更多占用空间更大的表示方式,如UTF-8/UTF-16等。

(3)应用范围

  • ASCII : 主要用于英文字符,不支持其他语言的字符。
  • Unicode:旨在支持全球范围的字符,适用于多语言文本。

(4)兼容性

  • ASCII : 是Unicode的一个子集,ASCII字符的编码与Unicode编码相同。
  • Unicode:包含了ASCII字符,并为其他字符提供了更多的编码空间。

1.4 总结

Unicode是一个更为全面和通用的字符编码标准,允许表示世界上所有语言的字符。ASCII主要是用于英文,是Unicode的一个子集,Unicode的引入解决了多语言环境中字符编码的问题。

2、Unicode和UTF

(1)Unicode

  • Unicode是一个字符集,定义了每个字符的唯一编号,称为码点。这个编号是用十六进制表示的,例如U+0041表示字符‘A’。
  • Unicode提供了一个标准,让不同的系统和应用程序使用相同的编号来表示相同的字符,从而实现字符的统一。

 (2)UTF

  • UTF是以一种字符编码方案,它定义了如何将Unicode中的码点编码为字节序列以及如何从字节序列解码回码点。
  • UTF-8:使用1到4个字节来表示一个字符,是一种变长编码。
  • UTF-16:使用2到4个字节来表示一个字符,是一种变长编码。
  • UTF-32:使用4个字节来表示一个字符,是一种定长编码。

(3)总结

Unicode是一个字符集,而UTF是一种编码方式,用于在计算机系统中存储和传输Unicode字符。UTF编码方案将Unicode码点转换成实际的字节序列,以便在计算机中进行处理。Unicode提供了字符的标准,而UTF提供了一种在计算机中处理这些字符的方法。 

3、模板字面量

 模板字面量是用反引号(`)分割的字面量,允许多行字符串、带嵌入表达式的字符串插值和一种带标签的模板的特殊结构。

模板字面量有时也被称为模板字符串,因为它们最常用作字符串插值。

4、字符串占位符

在一个模板字面量中,你可以把任何合法的JavaScript表达式嵌入到占位符中,并将其作为字符串的一部分输出到结果中。

占位符由一个左侧的 ${  和右侧的 } 符号组成,中间可以包含任意的JavaScript表达式。

let name = "yff";
let message = `hello ${name}`;
console.log(message);//hello yff

5、正则表达式

正则表达式是一个字符串,代表包含不同字符的特定搜索模式,如数字、字母和特殊字符。

相关文章:

Unicode/ASCII/UTF的关系(模板字面量、模板字符串、占位符)

字符串:编程时最重要的数据类型之一。 正则表达式:赋予开发者更多操作字符串的能力。 1、 Unicode和ASCII 1.1 概述 Unicode是ASCII字符编码的一个扩展,只不过在Windows中,用两个字节对其进行编码,也称为宽字符集&…...

三、低代码平台-单据配置(单表增删改查)

一、业务效果图 主界面 二、配置过程简介 配置流程:业务表设计 -》业务对象建立-》业务单据配置-》菜单配置。 a、业务表设计 b、业务对象建立 c、业务单据配置 功能路径:低代码开发平台/业务开发配置/单据配置维护 d、菜单配置...

6.1 数据驱动型业务管理方法(3%)

1 数据的产生与应用 1.数据的产生 2.数据的特征 3.数据的应用过程 应用到决策过程中 4.从决策到执行 决策:靠经验来进行决策(80%);可依据数据辅助(20%) 经验比数据重要的多,数据是辅助&…...

JVM学习目录

JVM ✅ JVM运行时内存结构 ✅ JVM常用启动参数 ✅ JVM内存分配与垃圾收集流程 ✅ 什么是垃圾回收机制(Garbage Collection,简称GC) ✅ 如何调用垃圾回收器的方法 ✅ GC如何判定对象已死 ✅ 方法区的垃圾收集 ✅ 垃圾收集算法 ✅ JVM垃圾回…...

使用远程桌面连接工具上传文件到Windows轻量应用服务器时,如何优化文件传输速度?

使用远程桌面连接工具上传文件到Windows轻量应用服务器时,如何优化文件传输速度? 优化网络连接:确保网络连接稳定和畅通,使用有线网络连接代替无线网络,以减少网络延迟和提高文件传输速度。 调整远程桌面设置&#xf…...

【Linux】基本指令(下)

🦄个人主页:修修修也 🎏所属专栏:Linux ⚙️操作环境:Xshell (操作系统:CentOS 7.9 64位) 日志 日志的概念: 网络设备、系统及服务程序等,在运作时都会产生一个叫log的事件记录;每一行日志都记载着日期、时间、使用者及动作等相关…...

LeetCode受限条件下可到达节点的数目

题目描述 现有一棵由 n 个节点组成的无向树,节点编号从 0 到 n - 1 ,共有 n - 1 条边。 给你一个二维整数数组 edges ,长度为 n - 1 ,其中 edges[i] [ai, bi] 表示树中节点 ai 和 bi 之间存在一条边。另给你一个整数数组 restr…...

[Flutter]设置应用包名、名称、版本号、最低支持版本、Icon、启动页以及环境判断、平台判断和打包

一、设置应用包名 在Flutter开发中,修改应用程序的包名(也称作Application ID)涉及几个步骤,因为包名是在项目的Android和iOS平台代码中分别配置的。请按照以下步骤操作: 1.Android Flutter工程中全局搜索替换包名 …...

electron-release-server部署electron自动更新服务器记录

目录 一、前言 环境 二、步骤 1、下载上传electron-release-server到服务器 2、宝塔新建node项目网站 3、安装依赖 ①npm install ②安装并配置postgres数据库 ③修改项目配置文件 ④启动项目 ⑤修改postgres的认证方式 ⑥Cannot find where you keep your Bower p…...

贪心(基础算法)--- 区间选点

905. 区间选点 思路 (贪心)O(nlogn) 根据右端点排序 将区间按右端点排序 遍历区间,如果当前区间左端点不包含在前一个区间中,则选取新区间,所选点个数加1,更新当前区间右端点。如果包含,则跳…...

JAVA计算表达式

需求: 1、例如if(score>85){return 1;}else if(score>70){return 2;}else if(score>60){return 3;}else{return 4;}有这一串字符串,要执行这个字符串, 如果score为86分,则能得到1;如果score为30分&#xff…...

【复现】宏景HCM 任意文件读取漏洞_63

目录 一.概述 二 .漏洞影响 三.漏洞复现 1. 漏洞一: 四.修复建议: 五. 搜索语法: 六.免责声明 一.概述 宏景HCM 将人才标签技术应用于员工招聘、人才选拔等环节,通过多维度的标签体系,形成不同专业序列的人才画…...

Linux:kubernetes(k8s)搭建mater节点(kubeadm,kubectl,kubelet)(2)

安装k8有多种方式如: minikube kubeadm 二进制安装 命令行工具 我这里就使用kubeadm进行安装 环境 3台centos7 master ip :192.168.113.120 2G运存 2内核 node1 ip :192.168.113.121 2G运存 2内核 node2 ip :192.168.1…...

Web应用安全威胁与防护措施

本文已收录至《全国计算机等级考试——信息 安全技术》专栏 由于极其容易出现漏洞、并引发安全事故,因此数据隐私的保护是目前绝大多数企业不可绕过的运维环节。不过,许多中小型企业往往会错误地认为只有大型企业才会成为黑客的目标。而实际统计数字却截…...

MySQL相关知识汇总

MySQL是一个广泛使用的开源关系型数据库管理系统,它以其高性能、稳定性和易用性而备受开发者喜爱。在软件开发领域,无论是大型项目还是小型应用,MySQL都扮演着重要的角色。本文将对MySQL的一些关键知识点进行汇总,帮助读者更好地了…...

【旧文搬运】为你的 Laravel 应用添加一个基于 Swoole 的 WebSocket 服务

做了一个基于 Swoole 的 WebSocket 扩展包,可以用来做实时状态推送,或者自定义消息处理实现 im,有需要的可以看看: [giorgio-socket] 使用方法 安装 安装扩展包 composer require wu/giorgio-socket发布配置文件 php artisan vendor:pu…...

vue项目从后端下载文件显示进度条或者loading

//API接口 export const exportDownload (params?: Object, peCallback?: Function) > {return new Promise((resolve, reject) > {axios({method: get,url: ,headers: {access_token: ${getToken()},},responseType: blob,params,onDownloadProgress: (pe) > {peC…...

[技巧]Arcgis之图斑四至点批量计算

前言 上一篇介绍了arcgis之图斑四至范围计算,这里介绍的图斑四至点的计算及获取,两者之间还是有差异的。 [技巧]Arcgis之图斑四至范围计算 这里说的四至点指的是图斑最东、最西、最南、最北的四个地理位置点坐标,如下图: 四至点…...

【java】20:枚举

枚举的二种实现方式 1) 自定义类实现枚举 2) 使用 enum 关键字实现枚举 自定义实现枚举: 1.不需要提供setXxx方法,因为枚举对象值通常为只读. 2.对枚举对象/属性使用final static共同修饰,实现底层优化. 3.枚举对象名通常使用全部大写&…...

★【二叉搜索树(中序遍历特性)】【 ★递归+双指针】Leetcode 98. 验证二叉搜索树

★【二叉搜索树(中序遍历特性)】【 ★递归双指针】Leetcode 98. 验证二叉搜索树 二叉搜索树 98. 验证二叉搜索树解法1 笨 中序递归遍历为一个数组 然后判断数组是不是升序排列就可以★解法2 不使用数组 递归法 ---------------🎈&#x1f38…...

C# 面试高频题:装箱和拆箱是如何影响性能的?伟

OCP原则 ocp指开闭原则,对扩展开放,对修改关闭。是七大原则中最基本的一个原则。 依赖倒置原则(DIP) 什么是依赖倒置原则 核心是面向接口编程、面向抽象编程, 不是面向具体编程。 依赖倒置原则的目的 降低耦合度&#…...

WPF新手村教程(七)—— 终章(MVVM架构初见杀)姑

1. 哑铃图是什么? 哑铃图(Dumbbell Plot),有时也称为DNA图或杠铃图,是一种用于比较两个相关数据点的可视化图表。 它源于人们对更有效数据比较方式的持续探索。 在传统的时间序列比较中,我们通常使用两条折…...

低代码平台与AI Agent的结合:降低AI应用开发门槛

低代码平台与AI Agent的结合:降低AI应用开发门槛 1. 引入与连接 1.1 一个开发者的困境 想象一下,你是一位经验丰富的全栈开发者,刚刚接到一个重要项目:为公司打造一套智能客服系统,能够理解用户意图、回答常见问题,甚至能处理一些复杂的业务流程。你信心满满地开始规划…...

智能语音转写效率工具:AsrTools解放你的音频处理工作流

智能语音转写效率工具:AsrTools解放你的音频处理工作流 【免费下载链接】AsrTools ✨ AsrTools: Smart Voice-to-Text Tool | Efficient Batch Processing | User-Friendly Interface | No GPU Required | Supports SRT/TXT Output | Turn your audio into accurate…...

如何快速掌握DankDroneDownloader:无人机固件管理的完整指南

如何快速掌握DankDroneDownloader:无人机固件管理的完整指南 【免费下载链接】DankDroneDownloader A Custom Firmware Download Tool for DJI Drones Written in C# 项目地址: https://gitcode.com/gh_mirrors/da/DankDroneDownloader 当你想完全掌控自己的…...

20260408 硬盘分区管理

一、硬盘分区管理 大容量的硬盘,分区使用:C盘系统盘,D盘办公,E盘娱乐。 1.1 识别硬盘设备接口类型设备命名示例说明SATA/SAS/USB/SCSI/dev/sda、/dev/sdb …物理机常用的磁盘设备命名virtio-blk(虚拟机)/de…...

BEYOND REALITY Z-Image保姆级教程:5分钟部署,零基础生成高清人像

BEYOND REALITY Z-Image保姆级教程:5分钟部署,零基础生成高清人像 1. 前言:为什么选择BEYOND REALITY Z-Image? 如果你正在寻找一款能够生成专业级写真人像的AI工具,BEYOND REALITY Z-Image可能是目前最值得尝试的选…...

资源控制与开发者工具:重构网页资源加载的全流程解决方案

资源控制与开发者工具:重构网页资源加载的全流程解决方案 【免费下载链接】ResourceOverride An extension to help you gain full control of any website by redirecting traffic, replacing, editing, or inserting new content. 项目地址: https://gitcode.co…...

Scio REPL交互式编程:快速原型开发和数据分析的终极指南

Scio REPL交互式编程:快速原型开发和数据分析的终极指南 【免费下载链接】scio A Scala API for Apache Beam and Google Cloud Dataflow. 项目地址: https://gitcode.com/gh_mirrors/sc/scio Scio REPL交互式编程是Apache Beam和Google Cloud Dataflow的Sca…...

如何快速掌握Notepad--:跨平台文本编辑器的完整指南

如何快速掌握Notepad--:跨平台文本编辑器的完整指南 【免费下载链接】notepad-- 一个支持windows/linux/mac的文本编辑器,目标是做中国人自己的编辑器,来自中国。 项目地址: https://gitcode.com/GitHub_Trending/no/notepad-- Notepa…...