本文摘自PHP中文网,作者coldplay.xixi,侵删。

1 2 3 4 | 首先简单介绍一下UTF-8。UTF-8以字节为单位对Unicode进行编码。
UTF-8的特点是对不同范围的字符使用不同长度的编码。
对于0x00-0x7F之间的字符,UTF-8编码与ASCII编码完全相同。UTF-8编码的最大长度是6个字节。
6字节模板有31个x,即可以容纳31位二进制数字。Unicode的最大码位0x7FFFFFFF也只有31位。
|
从Unicode到UTF-8的编码方式如下:
Unicode编码(十六进制) | UTF-8 字节流(二进制) |
---|
000000-00007F | 0xxxxxxx |
000080-0007FF | 110xxxxx 10xxxxxx |
000800-00FFFF | 1110xxxx 10xxxxxx 10xxxxxx |
010000-10FFFF | 11110xxx10xxxxxx10xxxxxx10xxxxxx |
以下是js实现代码,首先是编码
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 | function utf8Encode(inputStr) {
var outputStr = "" ;
for ( var i = 0; i < inputStr.length; i++) {
var temp = inputStr.charCodeAt(i);
if (temp < 128) {
outputStr += String.fromCharCode(temp);
}
else if (temp < 2048) {
outputStr += String.fromCharCode((temp >> 6) | 192);
outputStr += String.fromCharCode((temp & 63) | 128);
}
else if (temp < 65536) {
outputStr += String.fromCharCode((temp >> 12) | 224);
outputStr += String.fromCharCode(((temp >> 6) & 63) | 128);
outputStr += String.fromCharCode((temp & 63) | 128);
}
else {
outputStr += String.fromCharCode((temp >> 18) | 240);
outputStr += String.fromCharCode(((temp >> 12) & 63) | 128);
outputStr += String.fromCharCode(((temp >> 6) & 63) | 128);
outputStr += String.fromCharCode((temp & 63) | 128);
}
}
return outputStr;
}
|
下面是解码
阅读剩余部分
相关阅读 >>
javascript怎么累加
一起来聊聊jquery、javascript与js三者间的区别
javascript高阶函数的用法介绍
javascript语法是什么
web应用中富交互的撤销与前进操作的实现方法介绍(代码)
javascript如何判断是否数字
vue框架是什么
javascript中如何替换字符串?3种方法介绍
javascript控制台console对象的方法有哪些
javascript怎么设置select选中
更多相关阅读请进入《javascript》频道 >>
人民邮电出版社
本书对 Vue.js 3 技术细节的分析非常可靠,对于需要深入理解 Vue.js 3 的用户会有很大的帮助。——尤雨溪,Vue.js作者
转载请注明出处:木庄网络博客 » 学习使用JavaScript实现UTF-8编解码