关于adodb.stream.LoadFromFile -1参数随机报错的解决办法

bug原因是奇妙的utf两字节标识符.解决办法如下

var oStream = new ActiveXObject("adodb" + ".stream");
oStream.Open();
oStream.LoadFromFile(map_path);
oStream.Charset = "utf-8";
oStream.Position = 0;
var inputdata = "";
var size=parseInt(oStream.Size);
try {
    inputdata = oStream.ReadText();
} catch (error) {
    alert("now running on debug mode,backup to avoid unknown result");
    for(var offset=0;offset<10;offset++){
        try {
            oStream.Position = offset;
            inputdata = oStream.ReadText(size-offset);
            break;
        } catch (error) {
            
        }
    }
}
oStream.Close();

pixi.js的中文换行bug和解决方案

原效果

hack后的效果

PIXI.TextMetrics.tokenize = function (text) {
    const tokens = [];
    let token = '';
    if (typeof text !== 'string') {
        return tokens;
    }

    for (let i = 0; i &amp; lt; text.length; i++) {
        const char = text[i];

        tokens.push(char);
    }

    if (token !== '') {
        tokens.push(token);
    }

    return tokens;
}

原因分析:
原 分 词 针 对 空 格 , 你 写 字 带 空 格 吗 ?

关键词
tokenize wordwarp 中文分词

继续阅读pixi.js的中文换行bug和解决方案

论如何写代码会被人打死 奇怪的表达式求值

网易2017春招笔试之3:

输入描述:

输入为一行字符串,即一个表达式。其中运算符只有-,+,*。参与计算的数字只有0~9.
保证表达式都是合法的,排列规则如样例所示。

输出描述:

输出一个数,即表达式的值

输入例子:

3+5*7

输出例子:

56

eval("3+5*7".split("").reduce(function(a,b){if((/[+\-*]/.test(b))){return eval(a)+b}else{return a+b}}))