首页 > 其他分享 >前端字符编码

前端字符编码

时间:2023-06-27 09:57:49浏览次数:41  
标签:编码 UTF 字符 二进制 前端 base64 字符集

在计算机内部,所有的信息最终都表示为一个二进制的字符串。每一个二进制位(bit)有0和1两种状态,因此八个二进制位就可以组合出256种状态(-128~127),这被称为一个字节(byte)。

也就是说,一个字节一共可以用来表示256种不同的状态,每一个状态对应一个符号,就是256个符号,从0000000到11111111

 

字符集与字符编码

字符集:定义了文字和二进制的对应关系,为字符分配了唯一的编号,常见的 ASCII字符集,GB2312字符集,Unicode字符集

字符编码:规定了如何将文字的编号存储到内存中,本质就是如何使用二进制字节来表示字符

有的字符集在制定时就考虑到了编码的问题,是和编码结合在一起的;有的字符集只管制定字符的编号,至于怎么编码,是其他人的事情

base编码

ASCII 是用128(2^8)个字符,对二进制数据进行编码的方式,
base64 编码是用64(2^6)个字符,对二进制数据进行编码的方式
base32 编码就是用32(2^5)个字符,对二进制数据进行编码的方式
base16 编码就是用16(2^4)个字符,对二进制数据进行编码的方式

  • base64加密:在email传输中,加密是肯定的,但是base64加密的目的不是让用户发送非常安全的Email。这种加密方式主要就是“防君子不防小人”,达到一种一眼看上去看不出内容的效果。
  • base64编码是用来解决把不可打印的内容塞进可打印内容的需求的。比如把图片存到数据库,图片数据归根到底还是一堆二进制串(总不能把这些二进制串直接存到数据库吧),用base64编码后的显示成的字符串就大大缩小的长度,可以存到数据库。
  • 满足电子邮件中不能直接使用非ASCII码字符传输数据的规定,所以使用base64进行编码后传输,因为base64的64个字符肯定有对应的ascii编码。

UniCode是一个字符集

Javascript程序是使用Unicode字符集,Javascript源码文本通常是基于UTF-8编码

但JS代码中的字符串类型是UTF-16编码的,这也是为什么会碰到api接口返回字符串在前端出现乱码,因为多数后台服务都使用utf-8编码,前后编码方式不一致。

说起字符集的发展历程,可以总结为一句话:几乎都是对ASCII字符集的扩展

可以使用的编码有三种,分别是:

UFT-8:一种变长的编码方案,使用 1~6 个字节来存储;
UFT-32:一种固定长度的编码方案,不管字符编号大小,始终使用 4 个字节来存储;
UTF-16:介于 UTF-8 和 UTF-32 之间,使用 2 个或者 4 个字节来存储,长度既固定又可变。

UTF 是 Unicode Transformation Format 的缩写,意思是“Unicode转换格式”,后面的数字表明至少使用多少个比特位(Bit)来存储字符。

标签:编码,UTF,字符,二进制,前端,base64,字符集
From: https://www.cnblogs.com/tingying/p/17507869.html

相关文章

  • go:数组和切片、可变长参数、maps、字符串、指针、结构体、方法、接口
    目录数组和切片数组切片可变长参数maps字符串指针结构体方法接口数组和切片数组#1定义,初始化,使用#2数组是值类型数字,字符串,布尔,数组,都是值类型,真正直接存数据切片,map,指针引用类型,是个地址,指向了具体的值#3数组长度#4循环打印数组#5多纬数组#......
  • 前端Vue自定义加载中loading加载结束end组件 可用于分页展示 页面加载请求
    前端Vue自定义加载中loading加载结束end组件可用于分页展示页面加载请求,请访问uni-app插件市场地址:https://ext.dcloud.net.cn/plugin?id=13219效果图如下:实现代码如下:cc-paging使用方法<!--加载中用法isLoading:是否加载isEnd:是否结束加载--><cc-paging:isLoad......
  • 前端Vue自定义发送短信验证码弹框popup 实现剩余秒数计数 重发短信验证码
    前端Vue自定义发送短信验证码弹框popup实现剩余秒数计数重发短信验证码,请访问uni-app插件市场地址:https://ext.dcloud.net.cn/plugin?id=13207效果图如下:实现代码如下:cc-codeDialog使用方法<!--show:是否显示弹框phone:手机号 autoCountdown:自动时间秒数len:短信......
  • 前端Vue自定义验证码密码登录切换tabs选项卡标签栏标题栏 验证码登录模版 密码登录模
    前端Vue自定义验证码密码登录切换tabs选项卡标签栏标题栏验证码登录模版密码登录模版,请访问uni-app插件市场地址:https://ext.dcloud.net.cn/plugin?id=13221效果图如下:实现代码如下:cc-selectBox使用方法<!--select-arr:选择数组nowindex:当前选择序列@change:切换选择......
  • Spring Cloud Gateway编码实现任意地址跳转
    欢迎访问我的GitHub这里分类和汇总了欣宸的全部原创(含配套源码):https://github.com/zq2599/blog_demos本篇概览作为《SpringCloudGateway实战》系列的第十四篇,本文会继续发掘SpringCloudGateway的潜力,通过编码体验操控网关的乐趣,开发出一个实用的功能:让SpringCloudGa......
  • C# mysql MySqlDataAdapter fill(dataset) 字符串格式错误
    MySqlDataAdapter fill(dataset)时候报错字符串格式错误。排查两天发现是mysql数据表内字段设计错误,datetime格式的字段长度设置错误,应设置为0,原先设置为6.代码如下try{using(MySqlConnectionconnection=newMySqlConnection(connectio......
  • 【web开发】PHP其他常用字符串格式及常用加密函数
    前言前两篇文章中我们介绍了日常开发中常用到的字符串格式化函数,本文接着带大家继续了解PHP其他字符串格式化函数及加密函数,字符串的格式化处理函数还有很多,只要是想得到所需要格式化的字符串,都可以调用PHP中的提供的系统内置函数处理即可,很少需要自己定义字符的格式化处理函......
  • Python全栈学习 day04 进制和编码
    day04进制和编码课程目标:讲解计算机中一些必备的常识知识,让学员了解一些常见名词背后的含义(重在理解)。课程概要:python代码的运行方式进制计算机中的单位编码1.Python代码运行方式脚本式python3~/PycharmProjects/day03/6.作业题讲解.py交互式python32.进......
  • PHP 多行字符串的赋值方法
    <?php//PHP多行字符串的赋值方法//<<<string里面的string是可以随机其他的标记 $article=<<<string<!DOCTYPEhtml><htmllang="zh-cn"><head><metacharset="UTF-8"><metaname="viewport"content=&......
  • 08异步短信发送,注册功能,补充【1.为什么要写media才能访问,2.debug作用,3.ALLOWED_HOSTS
    1异步发送短信#原来的发送短信,是同步 -前端输入手机号---》点击发送短信---》前端发送ajax请求----》到咱们后端接口---》取出手机号----》调用腾讯发送短信---》腾讯去发短信---》发完后----》回复给我们后端发送成功---》我们后端收到发送成功---》给我们前端返回发送成功......