如何读取文本文件的隐藏字符?

bal*_*dre 8 windows mac textmate text-editors

我从我开发的应用程序创建了一个文本文件。

当我将文本文件发送到SYSTEM 验证时,他们(第三方系统)说该文件无效,并且该文件文件开头包含三个不允许的字符以及特殊字符不正确

他们还说我需要使用ISO 8859-1PC850

好吧,我正在使用Notepad++,我根本看不到!解决此类问题的最佳文本文件阅读器是什么?

替代文字

我也有一台 Mac,只是以为我记得在TextMate 中打开过……哇!现在我知道他们在说什么了!

我如何在 Windows 中拥有相同的功能?

替代文字

小智 6

在 Windows 中查看此类内容的一种简单方法是使用“type”命令。

我会做这样的事情:

type filename.txt | more
Run Code Online (Sandbox Code Playgroud)


bob*_*nce 4

\n

好吧,我正在使用 NotePad++,但我根本看不到!对于此类问题,最好的文本文件阅读器是什么?

\n
\n\n

问题是, \xe2\x80\x98good\xe2\x80\x99 文本编辑器应该能够透明地加载所有文本编码\xe2\x80\x89\xe2\x80\x94\xe2\x80\x89,甚至是愚蠢的损坏的,例如UTF-8-plus-BOM\xe2\x80\x89\xe2\x80\x94\xe2\x80\x89这会阻止您看到问题。当然,一个好的文本编辑器应该保存没有假 BOM 的 UTF-8,或者至少给你这样做的选项,但如果你没有看到假 BOM,你将不知道重新保存它。物料清单在那里。

\n\n

您在 TextMate 中看到文件开头的三个高字节的原因实际上是因为TextMate 出错并猜测编码为 Latin-1 而不是 UTF-8。这可能会重现您要发送到的不了解 Unicode 的服务的行为,但它本身并不是真正理想的功能。这也是为什么\xc3\xa6\xe2\x80\x8bs 和\xc3\xb8\xe2\x80\x8bs 还没有出来的原因。

\n\n

如果您想明确地查看文件中的每个字节,那么您想要的并不是真正的文本编辑器,而是十六进制编辑器。有很多可供选择,例如。Windows 上的xvi32

\n\n

然后修复您的应用程序,使其不产生伪造的 BOM;无论如何,它们在 UTF-8 文件中没有位置,更不用说它给非 Unicode 应用程序带来的问题了。[我不知道应用程序是用什么编写的,但产生不需要的 BOM 的一个常见原因是使用 .NET 的Encoding.UTF8编码。Anew UTF8Encoding(false)会更好。]

\n\n

无论您发送到的服务需要 UTF-8 还是其他编码,您都必须询问该服务的运营商。如果他们已经将文件中的 et al 的高字节描述\xc3\xa6为本质上 \xe2\x80\x98invalid\xe2\x80\x99,那么你可能会遇到他们不支持任何非 ASCII 字符的情况无论如何,在这种情况下,您必须考虑针对目标语言适当地音译字符,例如。\xc3\xa6-> ae

\n

  • 我不认为 TextMate 弄错了。它看起来更像是手动将文本编码更改为 Windows Latin-1。 (2认同)
  • *虚假 BOM;无论如何,它们在 UTF-8 文件中没有位置*——这在大多数数据流和 XML/HTML *文件*(提供其他方式来指定编码)以及大多数其他文件中都是如此,但不一定适用于 *全部文件。如果应用程序需要扫描整个文件来猜测某些内容是否为 UTF-8,那么 BOM 可能非常有用。尽管它不会定义实际的“字节顺序”,但它确实表明它是 UTF-8。在这个问题中,存在实际上非常好,因为它表明它已显式输出为 UTF-8,而不是所需的 ISO 8859-1 或 PC850。;-) (2认同)