我通过剪切和粘贴将一个大 txt ~500 KB 文件分成 6 个文件(另外 5 个),新文件的总大小比原始文件小得多。
这可能是因为 Windows 10 中出现了新的编码方式,而我大约 9 年前创建该文件时却没有采用这种编码方式?
大约 9 年前,当我创建第一个原始文件时,我选择了 Unicode,但现在它是自动的。
答案1
我认为“它是自动的”的意思是您对新文件使用了记事本或其他文本编辑器的默认编码格式。
默认文本编码是 ANSI,每个字符使用一个字节。由于旧编码是 Unicode,每个字符可能使用多个字节,这也许可以解释大小差异。
您应该检查结果,以确保在复制粘贴过程中没有丢失任何数据,例如非 ANSI 字符被截断转换,或者转换为仅相似的 ANSI 字符。
答案2
通过打开每个文件来检查编码记事本然后启动Save As
对话框。Encoding
选择器将设置为文件保存时使用的任何编码:
如果不是编码,请检查较大文件中的备用数据流:
- 打开
Command Propmpt
包含相关文件的目录。 - 命令
dir /R
将显示任何具有备用数据流的文件:
(带有 ADS 的文件最常见于Downloads
目录中,它们在其中充当 ZoneIdentifiers)
C:\Users\keith\Downloads>dir /AA /R
Volume in drive C is Windows
Volume Serial Number is F057-590D
Directory of C:\Users\keith\Downloads
10/02/2015 09:20 PM 1,730,272 ActiveSetupN.exe
05/12/2019 11:49 AM 8,312 Add_Settings_to_desktop_context_menu.reg
280 Add_Settings_to_desktop_context_menu.reg:Zone.Identifier:$DATA
03/27/2018 10:29 PM 1,747,504 adksetup.exe
02/07/2018 09:18 PM 55,296 advchange.exe
...
06/03/2019 03:32 PM 165,184 amtrak-vacations-network-map-2019.jpg
245 amtrak-vacations-network-map-2019.jpg:Zone.Identifier:$DATA
...
92 File(s) 2,139,170,500 bytes
0 Dir(s) 610,151,268,352 bytes free
答案3
有许多“Unicode”字符编码。在 Windows 语言中,“Unicode”通常指 UTF-16LE,因此英文文本每个字符占用 2 个字节。记事本中的默认编码现在是 UTF-8,这将使相同标准英文文本(包括“常见”特殊字符)的大小减半。