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

yizhihongxing

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日

相关文章

  • React中完整实例讲解Recoil状态管理库的使用

    下面我将详细讲解React中完整实例讲解Recoil状态管理库的使用的完整攻略: 1. 什么是Recoil状态管理库 Recoil是一个由Facebook团队开发的状态管理库,用于管理React应用程序中的应用状态。它减少了在子组件中传递多层道具的需求,以及在应用程序中传递数据的繁琐过程。 Recoil与其他状态管理库不同之处在于它提供了两种新的概念:ato…

    JavaScript 2023年6月11日
    00
  • Javascript中内建函数reduce的应用详解

    Javascript中内建函数reduce的应用详解 简介 reduce是JavaScript中的一个内建函数,主要用于对数组中的元素进行累加计算。在使用reduce之前,需要先理解一些概念。 reduce()方法:reduce() 方法接收两个参数: 一个回调函数,也称为累加器函数(accumulator)。它将原数组中的每个元素和累加器参数进行运算,并返…

    JavaScript 2023年5月27日
    00
  • JAVASCRIPT实现的WEB页面跳转以及页面间传值方法

    请看以下示范: JAVASCRIPT实现的WEB页面跳转以及页面间传值 页面跳转 在 JavaScript 中,可以通过修改 window.location 对象的属性来实现页面跳转。 直接跳转 // 直接跳转到目标 URL window.location = "https://www.example.com"; 重定向跳转 // 通过重…

    JavaScript 2023年6月11日
    00
  • JS面向对象之单选框实现

    让我来为大家详细讲解一下“JS面向对象之单选框实现”的完整攻略。 一、前置知识 在学习本文内容前,需要掌握以下基础知识: HTML基础语法和标签的使用。 CSS基础知识和样式的设置。 JavaScript基础语法和DOM操作。 二、单选框组件的设计 在使用JavaScript实现单选框的选择和取消操作之前,我们需要先思考该组件的设计。首先,我们需要确定该组件…

    JavaScript 2023年6月10日
    00
  • JavaScript 数组some()和filter()的用法及区别

    本篇攻略将详细讲解 JavaScript 数组 some() 和 filter() 方法的用法及区别。在讲解之前,需要明确的是,这两个方法均适用于 JavaScript 数组对象,且均为对数组进行遍历和筛选的方法,但使用方式和作用有所不同。 一、JavaScript 数组 some() 方法 1.1 作用 JavaScript 数组 some() 方法用于检…

    JavaScript 2023年5月27日
    00
  • JavaScript 定时器详情

    JavaScript 定时器详情 JavaScript 定时器是一种可以按照指定时间间隔循环执行代码的机制。它可以使得开发者对页面进行自动化控制,从而使得网站的交互更加丰富和动态。 JavaScript 定时器包括两种类型:setInterval() 和 setTimeout()。setInterval() 方法会按照指定的时间间隔重复执行一段代码,而 se…

    JavaScript 2023年6月11日
    00
  • JavaScript ES6中的简写语法总结与使用技巧

    JavaScript ES6中的简写语法总结与使用技巧 ES6是JavaScript中的一个重大升级版本,它增加了不少新特性,其中包括一些语法的简写,可以减少开发者的代码输入量,并提高代码的可读性。下面就来总结一下JavaScript ES6中的简写语法及其使用技巧。 1. 变量声明 ES6引入了let和const来替代原来的var。同时还加入了一些新的变量…

    JavaScript 2023年5月19日
    00
  • java NIO 详解

    Java NIO 详解 Java NIO(New IO)是一种基于缓冲区、非阻塞IO的API集,主要用于替代传统的Java IO API。它可以更高效地处理IO数据,具有更好的扩展性和灵活性,尤其适用于处理大量连接和请求的场景。 在本文中,我们将从以下几个方面对Java NIO进行详细讲解: 缓冲区(Buffer)及其操作 通道(Channel)及其操作 选…

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