Fontmin支持四字节汉字代码修改
创建:2020年8月2日 作者:清风明月
要让Fontmin支持四字节汉字,我们只需修改util.js中两个函数
技术关键点一:
4字节字符使用 split('') 会识别成2个字符,分隔成的数组包含2个元素
ES6中提供的 for...of 能正确识别4字节字符为单个字符
技术关键点二:
同样 charCodeAt 处理4字节字符,也会识别为2个字符,而返回首个字符的码点
使用ES6中的 codePointAt 可以正确返回4字节字符的码点
//作者:程园丁 SamStudio
//需要修改文件:node_modules\fontmin\lib\util.js
//第77行函数:
function getUniqText(str) {
return _.uniq(
str.split('')
).join('');
}
//修改成:
function getUniqText(str) {
var a=[]
for(var ch of str){a.push(ch)} //ES6
return _.uniq(
a
).join('');
}
//第120行函数:
function string2unicodes(str) {
return str.split('').map(function (text) {
return text.charCodeAt(0);
});
}
//修改成:
function string2unicodes(str) {
var a=[]
for(var ch of str){a.push(ch)} //ES6
return a.map(function (text) {
return text.codePointAt(0); //ES6
});
}