描述
最近在项目上遇到一个写日志的问题,需求是将0x01作为分隔符,放在各个字段之间,
然后发现在lua中直接用
1 | local t = { |
然后通过notepad++打开后期望会显示:aaaSOHbbb(SOH的ASCII值为1)
直接用table.concat(table, 0x01)是不行的, 这时候的输出结果是
1 | aaa1bbb |
然后再用table.concat(table, ‘0x01’)也是不行的, 这时候的输出结果是
1 | aaa0x01bbb |
在notepad++中0x01字符串是不会转换成SOH的
然后在网上查了好久,得到一个答案
1 | table.concat(table, '\001') |
最终用这个生成的日志在notepad++中显示的字符是SOH,满足了需求,然后还发现另外一个方法也是将ASCII码转化为控制字符
1 | table.concat(table, string.char(1)) |