为什么 Windows 文本文件编码在 Linux 系统中打开后崩溃?

为什么 Windows 文本文件编码在 Linux 系统中打开后崩溃?

我使用 Debian,有时需要挂载 Windows 磁盘,因为我想从 Windows 读取一些 *.txt 文件。有时没问题,但有时在我使用 Debian 系统编辑或读取文件,然后重新启动到 Windows 并尝试打开文件而不是

This is text in my txt file.

我懂了

This is td�T$(�b.U�D$$�X��B�D$,�@��Z�Eȃ��D$�D$DZ��

我使用鼠标垫作为我的 Debian 编辑器和 Windows 的默认记事本。有什么办法可以恢复文字吗?如何解决这个问题以便下次不再发生这种情况?

答案1

使用 Linux 中的 file-命令测试崩溃文件,并将其与非崩溃文件进行比较。

最有可能的是,文件编码不匹配,并且可能涉及一些不需要的自动检测。

20 年来,Linux 在大多数系统上都提供了 UTF-8,您不应该改变这一点。 Windows 加入得比较晚,但最近的安装也应该默认使用 utf-8。

某些编辑器可能带有旧的默认设置,例如 CP850 或 ISO-LATIN-x,其中 x 是数字或其他内容。

为了避免歧义,有人采取了一些措施,将 BOM 放在文件的开头,这使问题变得更糟,因为,例如,Linux 中的 shell 脚本在#!/bin/bash开头使用 Shebang(如 )并且不接受根本没有 BOM。

如果可能的话,将所有工具设置为 UTF-8 并尽可能转换旧文件(Linux 程序: iconv)。

file clean-and-easy.txt 
file crashing.txt 

您应该首先查看 file 命令是否报告某些内容,例如ascii-text with BOMUTF-8 Unicode text

相关内容