一、字符集

1)字符与字节(Character)

字符是各种文字和符号的总称,包括乱码;一个字符对应1~n个字节,一字节对应8位,每位用0或1表示。

2)字符集(Character Set)

字符集是多个字符的集合,每个字符集包含的字符个数不同,常见字符集名称:ASCII字符集、GB2312字符集、Unicode字符集等。

3)字符集编码(Character Encoding)

字符集编码就是将符号转换为计算机可读的二进制,解码就是把二进制转换为人类可读的符号。

字符集大多对应一种编码方式(例如GBK对应GBK编码),但Unicode编码有多种,包括UTF-8、UTF-16、UTF-32和UTF-7。

目前网页用的最多的就是“UTF-8”,UTF-8使用一至四个字节为每个字符编码,是ASCII的一个超集,所以现存的ASCII文本不需要转换

二、浏览器进制

1)HTML属性中使用十进制和十六进制

十进制在HTML中可使用“8”,十六进制,则使用“Z”,比十进制多了个x,进制码中也多了a~f这6个字符来表示10~15。

2)CSS属性中使用十进制和十六进制

CSS兼容HTML的进制形式,除此之外,十六进制还可以使用“\6c”的形式来表示。

3)JavaScript编码封装

可以直接通过eval执行字符串八进制和十六进制两种编码方式,其中八进制用“\56”表示,十六进制用“\x5c”表示。

如果代码中应用了汉字并且需要进行进制编码,那么只能进行十六进制Unicode编码,其表示形式为:“\u4ee3\u7801”。

在“Web前端黑客技术揭秘”中经封装了两个方法来做编码和解码,主要用到了下面两个方法,具体代码可查看此处。

核心代码是:“str.charCodeAt(char).toString(进制)”与“String.fromCharCode(parseInt(code,进制))

charCodeAt() 方法返回0到65535之间的整数,表示给定索引处的UTF-16代码单元

静态String.fromCharCode() 方法返回使用指定的Unicode值序列创建的字符串。

还可以通过一个在线网页进行编码解码“MonyerJS”。

4)HTML自动解码机制

例如在网页中输入16进制的“Hello”,自动就会解码为“hello”。

还有一些比较熟知的空格“ ”也是这种机制。

三、浏览器编码

JavaScript中有三对可以对字符串编码解码的函数,分别是:

escape/unescape、encodeURI/decodeURI、encodeURIComponent/decodeURIComponent。

主要的区别还是不编码的字符个数。

1)escape不编码的字符有69个

*、+、-、.、/、@、_、0~9、a~z、A~Z而且escape对0~255以外的unicode值进行编码时输出%u****格式。

2)encodeURI不编码的字符有82个

!、#、$、&、'、(、)、*、+、,、-、.、/、:、;、=、?、@、_、~、0~9、a~z、A~Z

 

3)encodeURIComponent不编码的字符有71个

!、'、(、)、*、-、.、_、~、0~9、a~z、A~Z

参考资料:

字符集和字符编码(Charset & Encoding)

浏览器的进制常识

JavaScript字符集编码与解码相关推荐

  1. 前端 javascript 字符编码与解码

    前端 javascript 开发过程中, 有时候会遇到字符串的编码和解码. 面对眼花缭乱的js原生方法, 到底如何选择总是很头大, 在此对常用方法做个小结. escape & unescape ...

  2. javascript中编码与解码的decodeURI()、decodeURIComponent()区别

    1. 定义和用法 decodeURI() 函数可对 encodeURI() 函数编码过的 URI 进行解码.decodeURIComponent() 函数可对 encodeURIComponent() ...

  3. JavaScript - URI编码、解码,转换整型的使用说明

    <html><head><head><body><script language="javascript">// URI ...

  4. Java字符集编码解码详细介绍

    文章目录 字符集 字符集的基本认识 字符集编码和解码 字符集 字符集的基本认识 字符集基础知识 计算机底层不可以直接存储字符的.计算机中底层只能存储二进制(0.1) 二进制是可以转换成十进制的 计算机 ...

  5. JavaScript进行UTF-8编码与解码

    JavaScript本身可通过charCodeAt方法得到一个字符的Unicode编码,并通过fromCharCode方法将Unicode编码转换成对应字符. 但charCodeAt方法得到的应该是一 ...

  6. javascript中的Base64.UTF8编码与解码详解

    javascript中的Base64.UTF8编码与解码详解 本文给大家介绍的是javascript中的Base64.UTF8编码与解码的函数源码分享以及使用范例,十分实用,推荐给小伙伴们,希望大家能 ...

  7. Linux上的js解码,使用JavaScript实现Base64编码与解码

    我们知道,浏览器的window对象提供有window.atob()和window.btoa()方法可以对字符串进行Base64编码和解码. console.log(window.btoa(window ...

  8. JavaScript 文本编码解码详解笔记

    JavaScript 文本的编码解码 文本编码 文本编码方法分为批量编码和流编码. 1.批量编码 所谓批量编码,指的是JavaScript引擎会同步编码整个字符串.对于非常长的字符串,可能会花较长时间 ...

  9. js php base64,JavaScript实现Base64编码与解码的代码详解

    本篇文章给大家分享的是jJavaScript实现Base64编码与解码的代码详解,内容挺不错的,希望可以帮助到有需要的朋友 一.加密解密方法使用//1.加密 var str = '124中文内容'; ...

最新文章

  1. win7修改网络计算机名字,小编分析win7系统修改计算机名字的操作方法
  2. IE JS关闭窗口不提示的方法
  3. redis延迟队列 实现_php使用redis的有序集合zset实现延迟队列
  4. UIView 的基础
  5. C++设计模式之策略模式(Strategy)
  6. AbstractEndpoint 和 ProtocolHandler
  7. dom文档对象手册_编程小白网页学习笔记之文档对象模型(DOM)
  8. 如何训练自己的编程思路
  9. mysql 中 unix_timestamp和from_unixtime 时间戳函数
  10. jquery鼠标右键事件
  11. 算法左神左程云耗尽5年心血分享程序员代码面试指南第2版文档
  12. Outlook登录163邮箱,qq邮箱以及企业邮箱等邮箱
  13. 使用CSS3实现圆形进度条
  14. uniapp中使用uview组件u-icon 编辑到微信小程序样式问题
  15. 基于一维卷积Conv1D实现猫狗叫声语音识别
  16. Postgresql适配国产化人大金仓(kingbase)
  17. android电视 优酷视频,将优酷视频投屏到智能电视上,竟然还有这种操作
  18. 奇虎360运维工程师招聘测试题
  19. ASP.NET Core源码学习(一)Hosting
  20. 睡五分钟等于六钟头的方法(熬夜必看)

热门文章

  1. 树莓派linux系统识别u盘启动,使用U-Boot让树莓派从U盘启动
  2. 工程桩基围护知识_地基基础工程专业承包资质
  3. arm64 指令集_透彻解析LED驱动芯片HT1632C指令集与驱动编程
  4. 三位数的茎叶图怎么看_人参怎么判断年份,这些点你要了解
  5. c语言 gt 5u,Linux之sar命令-php面向对象实例-WinFrom控件库|.net开源控件库|HZHControls官网...
  6. 什么是事件?JS中都有哪些事件?
  7. SDOI2016R2(怎么可能是解题报告)
  8. 针对《关于郝培强的《为什么我们招聘的时候绝不要传智播客的学生?》》的看法
  9. 14.图像透视——人类视觉,平行线测验,其他模型,乐趣与角度_4
  10. 【英语学习】【English L06】U08 News L2 Have you read the news about the light show?