假设我们使用node.js获取终端的当前列和行:
console.log('rows:', process.stdout.rows);
console.log('columns:', process.stdout.columns);
有没有一种方法可以计算出可以容纳在终端窗口中的字节数?我的意思是我猜应该是“行*列”,但我真的不知道。
我的猜测是rows*columns
是可以容纳的 max 个字节,但实际上,它可能更少,并不准确。
答案 0 :(得分:1)
最大数目取决于窗口的标称大小(行乘以列)以及字符单元格编码的方式。节点应用程序假定所有内容都编码为UTF-8,这意味着每个单元可以是4个字节(例如,请参见this answer)。
除此之外,您还必须在每行的末尾留一个换行符(除非您一直依赖换行符)。换行符是一个字节。
所以...
(1 + 列)* 行 * 4
作为第一近似值。
如果考虑组合字符,这可能会增加估算值,但是(请参见this answer)对的限制定义不明确。实际上,这些字符很少用在欧洲字符中,而用在某些亚洲字符( ymmv )中。