js字符串与Unicode编码互相转换

JavaScript字符串与Unicode编码互相转换

JavaScript内部使用Unicode编码,每个字符对应一个Unicode码位,可以通过字符串和Unicode编码之间的互相转换来操作Unicode码位。

字符串转Unicode编码

字符串转换成Unicode编码可以使用JavaScript内置的charCodeAt()函数。

charCodeAt()函数返回的是字符串中某个字符的Unicode编码,如果字符串中包含多个字符,需要通过下标来访问每个字符的Unicode编码。

基本使用

const str = 'Hello World!';
const unicode = str.charCodeAt(0); // 返回'H'的Unicode编码
console.log(unicode); // 72

转换整个字符串

可以使用循环结构将字符串中每个字符的Unicode编码转换出来。

const str = 'Hello World!';
let unicodeStr = '';
for (let i = 0; i < str.length; i++) {
  const unicode = str.charCodeAt(i);
  unicodeStr += `\\u${unicode.toString(16).toUpperCase()}`;
}
console.log(unicodeStr); // '\u0048\u0065\u006C\u006C\u006F\u0020\u0057\u006F\u0072\u006C\u0064\u0021'

Unicode编码转字符串

Unicode编码转换成字符串可以使用JavaScript内置的fromCharCode()函数。

fromCharCode()函数可以接收是Unicode码位的值,将其转换成对应的字符,可以支持多个Unicode码位,返回对应的字符串。

基本使用

const unicode = 72;
const str = String.fromCharCode(unicode); // 返回Unicode编码为72的字符'H'
console.log(str); // 'H'

转换整个字符串

可以使用循环结构将Unicode编码转换成字符串。

const unicodeStr = '\u0048\u0065\u006C\u006C\u006F\u0020\u0057\u006F\u0072\u006C\u0064\u0021';
let str = '';
const codeList = unicodeStr.match(/\\u[\dA-Fa-f]{4}/gm);
for (let code of codeList) {
  const unicode = parseInt(code.slice(2), 16);
  str += String.fromCharCode(unicode);
}
console.log(str); // 'Hello World!'

示例说明

示例1:字符串转Unicode编码

const str = '中国';
let unicodeStr = '';
for (let i = 0; i < str.length; i++) {
  const unicode = str.charCodeAt(i);
  unicodeStr += `\\u${unicode.toString(16).toUpperCase()}`;
}
console.log(unicodeStr); // '\u4E2D\u56FD'

代码段中,使用charCodeAt()函数获取字符串中每个字符的Unicode编码,转换成16进制输出成形如'\uXXXX'的形式。字符串'中国'转换后的结果为'\u4E2D\u56FD'。

示例2:Unicode编码转字符串

const unicodeStr = '\u4E2D\u56FD';
let str = '';
const codeList = unicodeStr.match(/\\u[\dA-Fa-f]{4}/gm);
for (let code of codeList) {
  const unicode = parseInt(code.slice(2), 16);
  str += String.fromCharCode(unicode);
}
console.log(str); // '中国'

代码段中,将Unicode编码字符串按'\uXXXX'的形式进行正则匹配,提取出码位值进行转换成字符,最终将字符拼接成字符串'中国'。

本站文章如无特殊说明,均为本站原创,如若转载,请注明出处:js字符串与Unicode编码互相转换 - Python技术站

(1)
上一篇 2023年5月20日
下一篇 2023年5月20日

相关文章

  • JS按钮连击和接口调用频率限制防止客户爆仓

    JS按钮连击和接口调用频率限制防止客户爆仓是前端开发中非常重要的两个问题,此处进行详细讲解。 JS按钮连击 在网页中,用户经常会通过点击按钮等界面元素执行某些操作。如果用户在短时间内多次连续点击同一个按钮,就会引发“按钮连击”问题。如何避免JS按钮连击问题呢?下面介绍几种常用的方法: 1. 禁用按钮 可以在按钮第一次点击时禁用按钮,在处理完当前请求后再重新启…

    JavaScript 2023年6月10日
    00
  • html的DOM中document对象images集合用法实例

    下面是关于“HTML的DOM中document对象images集合用法实例”的完整攻略: 什么是DOM中的document对象images集合 在HTML的DOM中,每个图片元素都被定义为标签。而通过document对象的images集合,我们可以获取到文档中的所有图片元素,并对其进行一系列的操作,比如更改图片路径、设置图片样式等等。 document对象i…

    JavaScript 2023年6月10日
    00
  • JavaScript脚本语言是什么_动力节点Java学院整理

    什么是 JavaScript 脚本语言 JavaScript 是一种动态脚本语言,主要用于在网页上添加交互特效和动态页面的功能。JavaScript 脚本在网页上运行,可以在用户的浏览器中直接执行,无需服务器端的支持,其灵活性和易用性使它成为前端开发的重要一环。 特点 JavaScript 脚本语言有以下几个特点: 解释型:与编译型语言不同,JavaScri…

    JavaScript 2023年5月27日
    00
  • JS/jQuery判断DOM节点是否存在的简单方法

    当我们使用 JavaScript 或者 jQuery 操作 DOM 节点时,有时候需要判断一个元素是否存在于页面中。以下是几种简单的方法来判断 DOM 节点是否存在。 方法一:使用 jQuery 长度属性 我们可以使用 jQuery 长度属性 .length() 来判断元素是否存在。如果元素不存在,它的长度为 0,反之则大于 0。 // 判断元素存在 if …

    JavaScript 2023年6月10日
    00
  • javascript检查浏览器是否已经启用XX功能

    要检查浏览器是否支持某项功能,可以使用JavaScript内置的对象——Navigator对象。Navigator对象提供了许多信息,包括浏览器的名称、版本、操作系统和是否支持某些特定的功能。以下是检查浏览器是否支持某些功能的几种方法: 方法一:使用navigator对象的属性检查 Navigator对象的属性包含许多信息,其中一些属性可用于检查浏览器是否支…

    JavaScript 2023年6月11日
    00
  • JavaScript:ES2019 的新特性(译)

    JavaScript: ES2019 的新特性(译) 本文将详细介绍 ES2019 中新增的一些功能。 Object.fromEntries() Object.fromEntries() 方法将键值对Array转换为对象。这个工具方法很有用,因为它可以让我们快速方便地构建一个新对象。 例如,我们有一个键值对数组,如下所示: const entries = […

    JavaScript 2023年6月10日
    00
  • 简单实现js页面切换功能

    当我们需要在网站页面中实现切换效果,通常需要用到 JavaScript 来实现。下面是实现 js 页面切换功能的完整攻略: 第一步:添加 HTML 结构 首先,在需要实现页面切换的 HTML 页面中,需要添加跳转链接以及对应的容器标签。例如,我们想要实现跳转到“首页”和“关于我们”两个页面,则可以添加如下代码: <!DOCTYPE html> &…

    JavaScript 2023年6月11日
    00
  • es6函数之rest参数用法实例分析

    下面来详细讲解“ES6函数之rest参数用法实例分析”的完整攻略。 什么是Rest参数? Rest参数允许我们在定义函数时,将多个参数表示成一个数组。在ES6之前,我们在定义函数时,通常使用arguments对象来接收传入的参数,并通过arguments[index]来访问不同的参数。 function sum() { let result = 0; for…

    JavaScript 2023年6月10日
    00
合作推广
合作推广
分享本页
返回顶部