【问题标题】:How to find non-printable character in text file [closed]如何在文本文件中查找不可打印字符[关闭]
【发布时间】:2012-01-21 07:35:51
【问题描述】:

我有一个由第三方处理的文本文件。他们告诉我该文件无效,因为它包含不可打印的字符。找到不可打印字符的最佳方法是什么,因为我的普通文本编辑器不会显示它。我更喜欢基于 windows、dos 或 powershell 的解决方案。

【问题讨论】:

  • 是的,尝试并找到了 utils,但没有找到二进制字符。
  • 我假设您的意思是“不可打印的字符”。 “二进制字符”实际上没有任何意义。
  • 嗯,为什么不投反对票??
  • @BaliC - 不幸的是,现在谷歌将此页面显示为对该问题的最高回复:-/
  • 我如何投票重新打开这个问题?

标签: file binary


【解决方案1】:

选项 #1 - 显示所有字符

您可以下载Notepad++ 并在那里打开文件。然后,进入菜单并选择View->Show Symbol->Show All Characters。所有字符都将变为可见,但您必须滚动整个文件才能查看需要删除的字符。

不幸的是,Notepad++ 会根据您选择的Edit->EOL Conversion 自动转换行尾,因此如果您的不可打印字符是 CR 或 LF,这将无济于事。

选项 #2 - TextFX Zap 不可打印字符

或者,您可以从 SourceForge 安装 TextFX 插件,并使用 TextFX->TextFX Characters->Zap all non-printable characters to #。这会将一些不可打印的字符替换为井号,而不是 CR 或 LF。

选项 #3 - 删除 BOM 编码

最后,您可以使用 Notepad++,并使用 Encoding->Convert to UTF8 without BOM。这将删除偶尔会导致某些渲染器出现问题的不可打印字符 (VSO)。

【讨论】:

  • 请注意:不幸的是,“删除所有不可打印的字符”还针对带有变音符号的字符,例如“é”。
  • 注意UTF-8 Without BOM is now just called UTF-8notepad-plus-plus.org/community/topic/7409/…
  • 注意:在我的例子中,Notepad++ 没有显示字符,即使使用Show all Characters(选项#1)。我必须在 Linux 上使用 od -cvi 才能看到它们。它们的 ASCII 表示是“357 273 277”或“\ufeff;”,位于我文件的开头。然而,使用 Notepad++ 将其转换为 UTF-8 工作并删除了这些(选项 #3)。
猜你喜欢
  • 2014-11-01
  • 2021-05-07
  • 2014-02-16
  • 1970-01-01
  • 2018-06-04
  • 2012-08-10
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多