vue项目安装less和less-loader取决于运行后错误报告的解决方法
由于安装的less和less-loader版本过高导致出错,解决方法如下: 1.配合node.js,卸载当前版本的less和less-loader 在vue_shop目录下shift+鼠标右键,打
顺晟科技
2021-06-16 10:40:48
357
字符编码
Unicode作为字符编码的标准,使用代码点来索引字符(通用标识符),字符编码用于识别代码点。字符编码被视为一个编码单位。在JavaScript中,字符串基于16位字符编码(UTF-16,Unicode的一种)来构造编码单位(用十进制或十六进制表示)。
前65,535个字符代码称为基本多语言平面(BMP),一个代码标识一个代码位。当超出BMP范围时,会用两个代码(代理对)来识别一个代码点,称为辅助平面字符。大部分字符在BMP范围内,部分字符在辅助平面内,这就产生了一些问题,比如汉字“:
let str=
//字符串的length属性基于编码单元返回的长度
//因为不在BMP范围内,所以字符" "为2(两个16位代码)
str.length//2
/^.$/.测试(str);//false
str . charat(0);//''
str . charat(1);//''
获取实际字符数
因为String.length是用编码单位数来计算长度的,所以遇到有两个编码单位的晦涩单词,比如"",在计算字符数时会有偏差。在ES6标准中,正则表达式的修饰符/u会将字符匹配模式从编码单元模式切换到字符模式,所以可以通过正则匹配来计算字符数:
/^.$/u . test(str);//true
str.match(/)。/gu)。长度;//1
应该注意的是当。match()方法与内容不匹配,会返回null,而且这种方法处理长字符串开销很大。
获取十进制代码点
//charCodeAt code point区别在哪里
str . charcodeat(0);//55362
str . charcodeat(1);//57271
str . codepointat(0);//134071
str . codepointat(1);//57271
134071.toString(16);//转换为十六进制0x20bb7
两者。charCodeAt()和。codePointAt()方法可以获取字符编码的十进制值。区别在于。codePointAt()方法可以获取代理对标识的代码点的小数值,也是最终指向字符的完整字符编码的小数值。
通过代码位获取相应的字符
//String.fromCharCode编码BMP范围以外的字符,无法正确获取对应的字符
string . FromCharCode(134071);//''
string . FromCharCode(55362);//''
//只能通过String.fromCodePoint获取
string . FromCodePoint(134071);//''
string . FromCodePoint(55362);//''
确定是否超过BMP范围
//通过分析Unicode,可以判断是否超出BMP范围(16位上限FFFF,小数为65535)
console . log(str . codepointat(0)0xfffff);//true
整句拆分
//只需使用。split()方法将根据代码而不是字符来拆分字符,因此单词“”被拆分成两个乱码
console . log(str . split('));//['', '']
//可以在match方法的正则表达式中添加修饰符u
console.log(str.match(/)。/gu))/[' ']
//for.声明
let word=[];
for(let char of str){
words . push(char);
}
console . log(word);//['']
字符编码的标准化
Unicode序列有很多规则。在ES6中,字符串序列(“NFC”、“NFD”、“NFKC”和“NFKD”)由统一。normalize(),它影响比较操作等操作的结果,例如以下排序操作:
Let str='文本排序前带标准化的cba ',
字数=[];
For(让char of ' standard before text sorting CBA '){
words . push(char);
}
word . sort((a,b)={
设an=a.normalize(),//两者使用相同的标准,默认为“NFC”
bn=b . normalize();
if(anbn){
return-1;
}else if(an===bn){
返回0;
}else{
返回1;
}
});
console . log(word);//得到统一标准后的排序结果
29
2021-08
29
2021-08
29
2021-08
28
2021-08
28
2021-08
28
2021-08