JavaScript UTF-8 编码与解码131
什么是 UTF-8?
UTF-8(Unicode Transformation Format – 8-bit)是一种 Unicode 转换格式,它将 Unicode 字符编码为一系列 8 位字节序列。UTF-8 是 Unicode 的标准编码,因为它具有以下优点:
向后兼容 ASCII:UTF-8 的前七位字节与 ASCII 字符集相同,这意味着所有 ASCII 字符都可以用一个字节表示。
可变长度编码:UTF-8 中的字符表示为可变长度的字节序列,其中较小的字符使用较短的序列,而较大的字符使用较长的序列。
兼容性:UTF-8 广泛用于 Web、电子邮件和其他文本传输协议中。
UTF-8 编码
UTF-8 编码算法根据 Unicode 字符的值将字符编码为字节序列。该算法如下:
如果 Unicode 字符值小于 128,则用一个字节表示,字节的最高位为 0,其余位包含字符值。
如果 Unicode 字符值在 128 到 2047 之间,则用两个字节表示,第一个字节的最高位为 110,第二个字节的最高位为 10,剩余位包含字符值。
如果 Unicode 字符值在 2048 到 65535 之间,则用三个字节表示,第一个字节的最高位为 1110,第二个和第三个字节的最高位为 10,剩余位包含字符值。
UTF-8 解码
UTF-8 解码算法将字节序列解码为 Unicode 字符。该算法如下:
如果第一个字节的最高位为 0,则该字节表示一个 ASCII 字符。
如果第一个字节的最高位为 110,则该字节表示一个两个字节的 UTF-8 序列,第二个字节的最高位必须为 10。
如果第一个字节的最高位为 1110,则该字节表示一个三个字节的 UTF-8 序列,第二个和第三个字节的最高位都必须为 10。
JavaScript 中的 UTF-8
JavaScript 提供了几个内置函数来处理 UTF-8 编码的字符串:
encodeURI() 和 decodeURI() 函数对 URL 组件进行 UTF-8 编码和解码。
encodeURIComponent() 和 decodeURIComponent() 函数对 URL 组件中的特定字符进行 UTF-8 编码和解码。
btoa() 和 atob() 函数将字符串转换为 Base64 编码和解码,Base64 编码是 UTF-8 的变体。
示例
// 编码一个 UTF-8 字符串
const encodedString = encodeURI("你好,世界!");
// 解码一个 UTF-8 编码的字符串
const decodedString = decodeURI(encodedString);
UTF-8 是一种高效且广泛使用的 Unicode 编码,它可以在 JavaScript 中轻松处理。理解 UTF-8 编码和解码对于处理多语言文本和传输 Unicode 字符至关重要。
2024-12-22
重温:前端MVC的探索者与现代框架的基石
https://jb123.cn/javascript/72613.html
揭秘:八大万能脚本语言,编程世界的“万金油”与“瑞士军刀”
https://jb123.cn/jiaobenyuyan/72612.html
少儿Python编程免费学:从入门到进阶的全方位指南
https://jb123.cn/python/72611.html
Perl 高效解析 CSV 文件:从入门到精通,告别数据混乱!
https://jb123.cn/perl/72610.html
荆门Python编程进阶指南:如何从零到专业,赋能本地数字未来
https://jb123.cn/python/72609.html
热门文章
JavaScript (JS) 中的 JSF (JavaServer Faces)
https://jb123.cn/javascript/25790.html
JavaScript 枚举:全面指南
https://jb123.cn/javascript/24141.html
JavaScript 逻辑与:学习布尔表达式的基础
https://jb123.cn/javascript/20993.html
JavaScript 中保留小数的技巧
https://jb123.cn/javascript/18603.html
JavaScript 调试神器:步步掌握开发调试技巧
https://jb123.cn/javascript/4718.html