【发布时间】:2016-05-17 04:53:06
【问题描述】:
基本问题是,记事本(或其他基本文本编辑器)如何存储数据。我遇到了这个问题,因为我试图比较不同压缩技术的文件大小,并意识到有些地方不太对劲。
详细说明..
如果我保存一个包含以下内容的文本文件:
a
文件为 1 个字节。这个恰好是 97 或 0x61。
我创建了一个包含以下内容的文本文件:
!"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijklmnopqrstuvwxyz{|}~ ¡¢£¤¥¦§¨©ª«¬®¯°±²³´µ¶·¸¹º»¼½¾¿ÀÁÂÃÄÅÆÇÈÉÊËÌÍÎÏÐÑÒÓÔÕÖרÙÚÛÜÝÞßàáâãäåæçèéêëìíîïðñòóôõö÷øùúûüýþÿ
这是从 0-255 或 0x00 到 0xFF 的所有字符。 该文件为 256 字节。每个字符 1 个字节。这对我来说很有意义。
然后我将以下字符附加到上述字符串的末尾。
†
上述字符串中不包含的字符。所有 8 位字符都已使用。这个字符是 8224 或 0x2020。一个 2 字节的字符。
然而,文件大小仅从 256 字节变为 257 字节。其实上面自己保存的字符只显示1个字节。
我错过了什么?
编辑:请注意,在第二个文本块中,许多字符没有出现在这里。
【问题讨论】:
-
你用什么来检查文件的大小?
-
@ChrisMartin Windows 资源管理器/文件属性
-
无论您使用什么工具来报告大小,至少显然是以字符为单位报告大小。
-
@DavidSchwartz 我应该使用什么工具来查看文件大小?同样,我只是在使用基本的操作系统属性查看器。
-
这取决于用于存储文件的字符集。一件重要的事情是,小于 32 的代码点是不可显示的,因为它们是控制代码,所以上面的文本不是 256 个字符。此外,Windows 程序在看到 0x1a 时可能会停止处理文本文件
标签: text unicode character ansi notepad