我正在开展个人项目,我想知道某些角色是否会在文本文件中占用更多数据。我需要选择一个字符来分隔我文件中的项目,但是如果0使用的字节少于a!或者其他什么,最好这样做。我知道所有字符都有一个ASCII值,但是较低的ASCII值意味着字符可以用较少的字节存储吗?
这可能是一个非常愚蠢的问题,但我没有在网上看到有关该主题的任何信息,所以我来这里查看。
谢谢!
答案 0 :(得分:3)
这取决于您使用的字符集是否一个字符占用的空间多于另一个字符。一些字符集是可变宽度的[1]。 UTF-8就是这样一个字符集。以UTF-8为例,标准ASCII字符的宽度均为1字节,而扩展的ASCII字符开始占用多个字节(最多6个)[2]。
在你的例子中,' 0'和'!':两者都是标准的ASCII,因此两者的宽度均为1字节(UTF-8)。
<强>参考文献:强>
答案 1 :(得分:1)
您还可以通过将不同字符放入文件并使用ls -l
或stat -f "%N %z"
命令检查文件大小来测试不同字符的大小
test $cat a
0
test $cat b
!
test $cat c
ક
test $cat d
æ
test $stat -f "%N %z" *
a 2
b 2
c 4
d 3
test $ls -l
total 32
-rw-r--r-- 1 spundun wheel 2 Jun 2 14:10 a
-rw-r--r-- 1 spundun wheel 2 Jun 2 14:10 b
-rw-r--r-- 1 spundun wheel 4 Jun 2 14:11 c
-rw-r--r-- 1 spundun wheel 3 Jun 2 14:13 d
test $
我相信每个文件都有一个额外的字节来指示文件结束EOF
。所以字符的大小分别为1,1,3,2。