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
    });
}