【问题标题】:How can I force emacs (or any editor) to read a file as if it is in ASCII format?如何强制 emacs(或任何编辑器)读取文件,就好像它是 ASCII 格式一样?
【发布时间】:2012-01-25 00:23:53
【问题描述】:

我无法在 maninfo 页面中找到此答案,也无法在此处或 Google 上进行搜索。我有一个文件,本质上是一个文本文件,但它在保存时不知何故搞砸了。 (我认为文件的前面不小心出现了一些奇怪的字节。)

我可以使用headcat 打开文件,但没有使用任何类型的编辑器。

最后,我想做的就是在 emacs 中打开文件,删除“杂乱”字符,并在清理后保存。但是,该文件巨大,所以我需要像 emacs 这样功能强大的东西才能打开它。

否则,我想我可以尝试创建一个脚本来逐行读取它,强制脚本以文本格式读取它,然后编写它。但我想要一些快速的东西,因为我不会一遍又一遍地这样做。

谢谢! 迈克

【问题讨论】:

  • 你试过用 Emacs 吗?你有没有得到任何错误?一般来说,默认情况下 Emacs 在这种情况下做得不错。

标签: emacs ascii non-ascii-characters


【解决方案1】:
perl -i.bk -pe 's/[^[:ascii:]]//g;' file

在这里找到这个 perl one liner:http://www.perlmonks.org/?node_id=619792

【讨论】:

    【解决方案2】:

    在 Emacs 中尝试 M-xfind-file-literally

    【讨论】:

      【解决方案3】:

      您可以使用hexl-mode 编辑文件,它可以让您以十六进制编辑文件。这会让你准确地看到那些有问题的角色是什么,并删除它们。

      听起来您要么在文件中得到了不同的行结尾(例如:*nix 系统上的回车),要么以意外的编码保存。

      【讨论】:

      • 是的,它以某种方式以 unicode UTF-16 格式保存,带有一点字节序前缀。 (en.wikipedia.org/wiki/Byte_Order_Mark)“修复”它——破解工作——只删除前 2 个字节。
      【解决方案4】:

      您可以使用strings 来获取“文件中的可打印字符”。您可能不得不使用--encoding,尽管我只使用它从可执行文件中获取 ascii 字符串。

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 2011-05-18
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2011-12-29
        • 2021-12-27
        • 2021-05-31
        • 1970-01-01
        相关资源
        最近更新 更多