JS加密解密之字符编码知识

news2024/11/14 19:21:24

在这里插入图片描述

在前端开发中,字符编码是一个至关重要的概念,特别是在数据传输、加密和解密等方面。JavaScript作为一种常用的脚本语言,在处理字符编码时也有其独特之处。本文将详细介绍JavaScript中的字符编码知识,包括字符编码的分类和相关案例代码。

一、字符编码概述

字符编码是将字符映射到数字的过程,以便计算机能够理解和处理文本数据。在JavaScript中,常见的字符编码包括 ASCII、Unicode 和 UTF-8。

  1. ASCII编码:ASCII(American Standard Code for Information Interchange)是一种基于拉丁字母的字符编码,用于将字符映射到数字。ASCII编码只使用了一个字节(8位),因此最多可以表示256个字符。
  2. Unicode编码:Unicode是一种字符集,包含了世界上几乎所有的字符,每个字符都有一个唯一的Unicode码点。Unicode编码通常用16位(双字节)来表示字符。
  3. UTF-8编码:UTF-8(Unicode Transformation Format)是一种对Unicode进行变长编码的实现方式。UTF-8使用1至4个字节来表示一个字符,能够表示Unicode中的所有字符。

二、字符编码分类

根据字符编码的不同特点,可以将字符编码分为以下几类:

  1. 单字节编码:每个字符占用一个字节的编码方式,如ASCII编码。
  2. 双字节编码:每个字符占用两个字节的编码方式,如Unicode编码。
  3. 多字节编码:每个字符占用超过两个字节的编码方式,如UTF-8编码。

三、案例代码示例

1. ASCII编码示例:
// 字符串转换为ASCII码
function stringToAscii(str) {
    let asciiArr = [];
    for (let i = 0; i < str.length; i++) {
        asciiArr.push(str.charCodeAt(i));
    }
    return asciiArr;
}

// ASCII码转换为字符串
function asciiToString(asciiArr) {
    let str = '';
    for (let i = 0; i < asciiArr.length; i++) {
        str += String.fromCharCode(asciiArr[i]);
    }
    return str;
}

let inputStr = "Hello";
let asciiArray = stringToAscii(inputStr);
console.log("ASCII码数组:", asciiArray);
console.log("ASCII码转换后的字符串:", asciiToString(asciiArray));
2. Unicode编码示例:
// 字符串转换为Unicode码
function stringToUnicode(str) {
    let unicodeArr = [];
    for (let i = 0; i < str.length; i++) {
        unicodeArr.push(str.charCodeAt(i));
    }
    return unicodeArr;
}

// Unicode码转换为字符串
function unicodeToString(unicodeArr) {
    let str = '';
    for (let i = 0; i < unicodeArr.length; i++) {
        str += String.fromCharCode(unicodeArr[i]);
    }
    return str;
}

let inputStr = "你好";
let unicodeArray = stringToUnicode(inputStr);
console.log("Unicode码数组:", unicodeArray);
console.log("Unicode码转换后的字符串:", unicodeToString(unicodeArray));
3. UTF-8编码示例:
// 字符串转换为UTF-8编码
function stringToUtf8(str) {
    return unescape(encodeURIComponent(str));
}

// UTF-8编码转换为字符串
function utf8ToString(utf8Str) {
    return decodeURIComponent(escape(utf8Str));
}

let inputStr = "🚀";
let utf8Encoded = stringToUtf8(inputStr);
console.log("UTF-8编码后的字符串:", utf8Encoded);
console.log("UTF-8编码转换后的字符串:", utf8ToString(utf8Encoded));

四、总结

本文介绍了JavaScript中的字符编码知识,包括ASCII、Unicode和UTF-8编码的概念、分类以及相关的案例代码。了解字符编码对于前端开发者来说至关重要,能够帮助他们更好地处理文本数据,确保数据的正确性和安全性。

五、和js加密的关系

字符编码在JavaScript加密中扮演着重要的角色,它与加密算法和数据传输密切相关,确保加密和解密过程的正确性、安全性和可靠性。因此,在开发JavaScript加密应用程序时,理解字符编码的原理和使用方法是非常重要的。

Jsjiami.v7在线js加密

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

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

相关文章

【C++】1600. 请假时间计算

问题&#xff1a;1600. 请假时间计算 类型&#xff1a;基本运算、整数运算 题目描述&#xff1a; 假设小明的妈妈向公司请了 n 天的假&#xff0c;那么请问小明的妈妈总共请了多少小时的假&#xff0c;多少分钟的假&#xff1f;&#xff08;提示&#xff1a; 1 天有 24 小时&…

2_27. 移除元素

2_27. 移除元素 难度: 简单 提示: 给你一个数组 nums 和一个值 val&#xff0c;你需要 原地 移除所有数值等于 val 的元素&#xff0c;并返回移除后数组的新长度。 不要使用额外的数组空间&#xff0c;你必须仅使用 O(1) 额外空间并 原地 修改输入数组。 元素的顺序可以改变…

知识管理入门:轻松选择合适的知识管理软件

你是不是经常觉得自己的大脑像个杂乱的仓库&#xff0c;各种信息、知识和想法在里面乱窜&#xff0c;找不到头绪&#xff1f;别担心&#xff0c;知识管理软件来帮你解决这个问题啦&#xff01;今天&#xff0c;我们就来聊聊知识管理软件这个神奇的工具&#xff0c;新手也能轻松…

python基础——语句

一、条件语句 就是 if else 语句 &#xff01; 代表不等于 代表等于if 关键字&#xff0c;判断语句&#xff0c;有“如果”的意思&#xff0c;后面跟上判断语句else 常和“if” 连用&#xff0c;有“否则”的意思&#xff0c;后面直接跟上冒号 …

华为配置WLAN 802.1X认证实验

配置WLAN 802.1X认证示例 组网图形 图1 配置802.1X认证组网图 业务需求组网需求数据规划配置思路配置注意事项操作步骤 业务需求 用户接入WLAN网络&#xff0c;使用802.1X客户端进行认证&#xff0c;输入正确的用户名和密码后可以无线上网。且在覆盖区域内移动发生漫游时&…

鸿蒙一次开发,多端部署(三)应用UX设计原则

设计原则 当为多种不同的设备开发应用时&#xff0c;有如下设计原则&#xff1a; 差异性 充分了解所要支持的设备&#xff0c;包括屏幕尺寸、交互方式、使用场景、用户人群等&#xff0c;对设备的特性进行针对性的设计。 一致性 除了要考虑每个设备的特性外&#xff0c;还…

vue3 reactive丢失响应式

问题 使用 reactive 构造响应式对象时&#xff0c;当对其进行重新赋值后&#xff0c;会导致原有变量失去响应式&#xff0c;页面不会发生联动更新 例如&#xff1a; 1、使用 reactive 定义一个响应式的对象变量 let data1 reactive({name: 小李,date: 2024-03-18,address: xx…

基于Python的HTTP接口自动化测试框架实现

对服务后台一系列的http接口功能测试。 输入&#xff1a;根据接口描述构造不同的参数输入值 输出&#xff1a;XML文件 二、实现方法 1、选用Python脚本来驱动测试 2、采用Excel表格管理测试数据&#xff0c;包括用例的管理、测试数据录入、测试结果显示等等&#xff0c;这…

美团2023年财报:全年营收2767亿元,即时配送订单219亿笔

3月22日&#xff0c;美团(股票代码:3690.HK)发布2023年第四季度及全年业绩。公司各项业务继续取得稳健增长&#xff0c;全年营收2767亿元(人民币&#xff0c;下同)&#xff0c;同比增长26%&#xff0c;经营利润134亿元。 本年度&#xff0c;美团继续围绕“零售科技”战略&…

C# winform修改背景图 控件双向绑定 拖拽打开图片

修改背景图 说明 这里我准备基于百度飞桨PaddleSeg项目的人像分割模块做一个人像抠图&#xff0c;这里顺便用上了双向绑定和图片拖拽打开。 下面就是示例&#xff1a; 用颜色替换 用背景图替换 保存成功后的图片 一、使用百度飞桨PaddleSeg //初始化 引擎engine new Padd…

用易货模式做成小程序商城的可行性分析

在当前的商业环境中&#xff0c;易货模式已经逐渐被人们所熟知和接受。这种以物易物的交易方式&#xff0c;不仅能帮助企业降低库存压力&#xff0c;还能有效促进资源的优化配置。那么&#xff0c;如果我们用易货模式来打造一个小程序商城&#xff0c;这样的想法是否可行呢&…

【探索Linux】—— 强大的命令行工具 P.29(网络编程套接字 —— 简单的TCP网络程序模拟实现)

阅读导航 引言一、TCP协议二、TCP网络程序模拟实现1. 预备代码⭕ThreadPool.hpp&#xff08;线程池&#xff09;⭕makefile文件⭕打印日志文件⭕将当前进程转变为守护进程 2. TCP 服务器端实现&#xff08;TcpServer.hpp&#xff09;3. TCP 客户端实现&#xff08;main函数&…

Doris实战——天眼查Doris实时数仓构建

目录 前言 一、业务背景 二、原有架构及痛点 三、理想架构 四、技术选型 五、新数仓架构 六、应用场景优化 6.1 人群圈选 6.2 C端分析数据及精准营销线索场景 七、优化经验 八、规模和收益 九、未来规划 原文大佬的这篇实时数仓构建有借鉴意义的&#xff0c;这些摘…

JavaEE 初阶篇-深入了解进程与线程(常见的面试题:进程与线程的区别)

&#x1f525;博客主页&#xff1a; 【小扳_-CSDN博客】 ❤感谢大家点赞&#x1f44d;收藏⭐评论✍ 文章目录 1.0 进程概述 2.0 线程概述 2.1 多线程概述 3.0 常见的面试题&#xff1a;谈谈进程与线程的区别 4.0 Java 实现多线程的常见方法 4.1 实现多线程方法 - 继承 Thread 类…

从先序与中序遍历序列构造二叉树

从先序与中序遍历序列构造二叉树 描述&#xff1a; 给定两个整数数组 preorder 和 inorder &#xff0c;其中 preorder 是二叉树的先序遍历&#xff0c; inorder 是同一棵树的中序遍历&#xff0c;请构造二叉树并返回其根节点。 递归法 解题思路&#xff1a; 通过先序遍历我…

山西生态与智慧水利科技展会之华锐VRAR元宇宙水利应用展位恭候大驾

2024黄河流域生态与智慧水利科技博览会于今日在山西太原隆重开启&#xff0c;本次展会持续至3月24日共三天时间&#xff0c;相比之前的水展&#xff0c;这次展会区域之广辐射了中部六省&#xff0c;展会内容之多包括黄河流域生态保护的现状与挑战、水资源管理与水污染防治、智慧…

鸿蒙开发-UI-动画-页面间动画

鸿蒙开发-UI-组件导航-Navigation 鸿蒙开发-UI-组件导航-Tabs 鸿蒙开发-UI-图形-图片 鸿蒙开发-UI-图形-绘制几何图形 鸿蒙开发-UI-图形-绘制自定义图形 鸿蒙开发-UI-图形-页面内动画 鸿蒙开发-UI-图形-组件内转场动画 鸿蒙开发-UI-图形-弹簧曲线动画 文章目录 前言 一、放大缩…

今天简单聊聊容器化

什么是容器化 容器化&#xff08;Containerization&#xff09;是一种软件开发和部署的方法&#xff0c;其核心思想是将应用程序及其所有依赖项打包到一个独立的运行环境中&#xff0c;这个环境被称为容器。容器化技术使得应用程序可以在不同的计算环境中以一致的方式运行&…

ES集群不识别节点SSL证书的问题处理

问题描述 在启动ES服务并试图加入其他节点上已启动的集群时&#xff0c;出现报错(原文是一大段话&#xff0c;我按语义拆成了几段)&#xff1a; [2024-03-19T16:32:02,844][WARN ][o.e.c.s.DiagnosticTrustManager] [node-2-master] failed to establish trust with server a…

宏璇物流邀您参观2024快递物流供应链与技术装备展览会

展会介绍 ESYE CHINA 2024快递物流展是亚洲范围内超大规模的快递物流业展示平台&#xff0c;由于展会的需求及扩大市场的影响力&#xff0c;ESYE 2024转战杭州&#xff0c;凭借着先进的经济发展水平、优越的地理位置、成熟的产业环境以及巨大的电商、微商、零售业、消费的市场…