正如题目所述:为什么YUI压缩器会将单引号替换为双引号?难道双引号占用的空间更小吗(我认为不是这个原因)?还是有其他原因呢?
将这些字符归一化为一种类型更有利于GZIP压缩,恰好是双引号并不是必需的。
GZip采用标准的压缩方式,因此例如,如果您有一个字符串:
"Foo", 'bar', "baz"
您可以将",
压缩为单个字符(我们使用#符号表示),将字符串缩小到以下内容:
"Foo#'bar', "baz"
与此相反,如果您有:
"Foo", "bar", "baz"
您可以将", "b
压缩为以下内容:
"Foo#ar#az"
从而通过消除可用字符的总数来使字符串变得更短。
再次强调,将其作为任何引号都无关紧要,只要是一致的即可。
这是我从Linux命令行中复制并粘贴的示例:
briang@ubuntu:~$ cat 1.txt
"Foo", 'bar', "baz"
briang@ubuntu:~$ cat 2.txt
"Foo", "bar", "baz"
briang@ubuntu:~$ cat 1.txt.gz
&▒:O1.txtSr▒▒W▒QPOJ,R▒QPJJ▒R▒(▒P▒
briang@ubuntu:~$ cat 2.txt.gz
<▒:O2.txtSr▒▒W▒QPJJ,▒PUJ\tE▒
briang@ubuntu:~$ ls -la *txt*
-rw-rw-r-- 1 briang briang 20 2012-02-14 16:39 1.txt
-rw-rw-r-- 1 briang briang 46 2012-02-14 16:37 1.txt.gz
-rw-rw-r-- 1 briang briang 20 2012-02-14 16:39 2.txt
-rw-rw-r-- 1 briang briang 41 2012-02-14 16:38 2.txt.gz
你会发现对这样小的文件进行gzip压缩会使它们变大,而不是缩小它们的大小,但是比较两个原始输入之间的gzip差异可以让你理解这个概念。规范化后的gzip文件减小了5个字节。