js字符串unicode转换方法整理

本文详细介绍了JavaScript中关于Unicode、UTF-8、UTF-16编码的处理,包括escape、unescape、encodeURI、decodeURI、encodeURIComponent、decodeURIComponent等函数的用法,以及TextEncoder和TextDecoder类在处理多字节字符时的运用。
摘要由CSDN通过智能技术生成

为了能更好的理解以下函数,请先学习unicode,utf-8,utf-16的相关知识。这里推荐阮一峰老师的这篇文章

Unicode与JavaScript详解 - 阮一峰的网络日志 (ruanyifeng.com)

API详情请查看MDN

MDN Web Docs

// eg.春 Unicode 码位值(即,在unicode中的编号)26149 utf-16 0x6625(=26149) utf-8编码0xE6(=230) 0x98(=152) 0xA5(=163)

escape('春');
// 已弃用 return '%u6625'
// 不对ASCII字母、数字、标点符号"@ * _ + - . /"生效
// 值小于等于 0xFF 时,用一个 2 位转义序列:%xx 表示。大于的话则使用 4 位序列:%uxxxx 表示

unescape('%u6625'); // 已弃用,return '春'

encodeURI('春');
// return '%E6%98%A5' utf-8编码,%xx 的形式显示每个字节
// 保留字符,非转义字符,数字符号不转义(详见MDN)

decodeURI('%E6%98%A5'); // return '春'

encodeURIComponent('春='); // return '%E6%98%A5%3D'
// 按utf-8编码,%xx 的形式显示每个字节,对URL的部分组成部分编码
// 仅不转义如下A-Z a-z 0-9 - _ . ! ~ * ' ( )

decodeURIComponent('%E6%98%A5%3D'); // return '春='

(new TextEncoder()).encode('春'); // return Uint8Array[230, 152, 165] 返回utf-8,每个字节按10进制显示

(new TextDecoder()).decode(new Uint8Array([230, 152, 165])) // return '春'

// 双字节码点 \u0000~\uFFFF
'春'.charAt(); // return '春'

'春'.charCodeAt(); // return 26149 码位值

'春'.codePointAt(); // return 26149 码位值

'\u6625' // return '春' UTF-16转字符串

String.fromCodePoint(26149) // return '春' 码位值转字符串

// 四字节码点
'\uD842\uDFB7' // return '𠮷' UTF-16转字符串

'\u{20BB7}' // return '𠮷' 码位值的16进制转字符串

'𠮷'.length // return 2

Array.from('𠮷').length // return 1

'𠮷'.split(''); // return ['\uD842', '\uDFB7']

'𠮷'.charAt(); // return '\uD842' 返回第一个字节的utf-16

'𠮷'.charCodeAt(); // return 55362 返回第一个字节10进制, 0xD842===55362

'𠮷'.codePointAt(); // return 134071 码位值,可以自动识别四字节码点

String.fromCodePoint(134071) // return '𠮷' 码位值转字符串

  • 8
    点赞
  • 9
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
JavaScript中有许多用于字符串和数组处理的方法。下面是一些常用的方法: 字符串方法: 1. `length`:返回字符串的长度。 2. `charAt(index)`:返回指定位置的字符。 3. `charCodeAt(index)`:返回指定位置字符的Unicode值。 4. `toLowerCase()`:将字符串转换为小写。 5. `toUpperCase()`:将字符串转换为大写。 6. `trim()`:去除字符串两端的空格。 7. `slice(start, end)`:提取字符串的一部分,包括起始索引但不包括结束索引。 8. `split(separator)`:将字符串按指定分隔符分割为数组。 数组方法: 1. `length`:返回数组的长度。 2. `concat(arr)`:将数组与其他数组或值连接在一起,返回一个新数组。 3. `join(separator)`:将数组的所有元素转换为字符串,通过指定的分隔符连接起来。 4. `pop()`:移除并返回数组中的最后一个元素。 5. `push(item1, item2, ...)`:向数组末尾添加一个或多个元素,并返回新数组的长度。 6. `shift()`:移除并返回数组中的第一个元素。 7. `unshift(item1, item2, ...)`:向数组开头添加一个或多个元素,并返回新数组的长度。 8. `slice(start, end)`:提取数组的一部分,包括起始索引但不包括结束索引。 9. `splice(start, count, item1, item2, ...)`:从指定位置开始修改数组,删除/替换/添加元素。 这只是一部分常用的方法,JavaScript还有很多其他处理字符串和数组的方法。你可以查阅相关文档来了解更多细节。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值