Lua 去除不可见控制字符

关于ASCII码 控制字符这个坑,我想有小伙伴肯定和我一样遇见了。。

我遇见的问题是,在进行双方通信的时候,本地发送过的数据到对方那边,莫名其妙多出十几个bytes的东西。

但是我找不到是什么东西@@....

想了半天,唯一的差别就只有可能是ASCII码表中的那几个不可见的控制字符。

首先附上一个ASCII码表。

为此,需要对收到的字符进行过滤,这边我只对不可见的控制字符进行过滤,保留从39-126的可见字符。

function filter_spec_char(s)
    local ss = {}
    local k = 1
    while true do
        if k > #s then break end
        local c = string.byte(s,k)
        if not c then break end
        if c<192 then
            if (c>=39 and c<=126) then
                table.insert(ss, string.char(c))
            end
            k = k + 1
        end
    end
    return table.concat(ss)
end
posted @ 2020-09-09 15:35  萧蔷ink  阅读(596)  评论(0编辑  收藏  举报