【问题标题】:Find and Replace in Files - UTF8在文件中查找和替换 - UTF8
【发布时间】:2013-05-28 18:02:44
【问题描述】:

搜索一个免费的商业用途应用程序,允许在多个文件中查找/替换(正则表达式很好,但不是必须的),支持以 UTF-8 格式打开和保存。

尝试了一些类似 BKReplaceEm 的方法,但应用程序最终将所有文件保存为 ASCII,这会导致网络渲染出现一些问题。

请指教。

[更新]为了进一步澄清,我正在寻找一个 Windows 实用程序。

[UPDATE #2] 这将用于运行我们的 450 页站点,并将所有法语字符替换为急需的 HTML 实体。

【问题讨论】:

  • Dmitri - 您能否澄清一下您的多个文件是否 100% 位于一个目录中?谢谢
  • 为什么甚至需要 HTML 实体?正确的解决方案不是宣传正确的字符集吗?
  • 这些文件都在一个目录中,但它们包含在此类的各种子文件夹中。所以我猜没有。
  • 嗯,使用 HTML 实体的唯一要点是将它们包含在没有或不同字符集声明的 HTML 文件中。如果这两点都不适用,那么让 HTML 文件使用正确的编码可能会更容易,这样可以很好地消除此类字符编码问题。
  • 嗯。如果您用 HTML 实体替换所有非 ASCII 字符,那么将结果保存为 ASCII 还是 UTF-8 是没有意义的 - 无论哪种方式,它都是完全相同的字节表示。如果有任何区别,那么我想知道您为什么要用 html 实体替换法语字符,而将西班牙语、德语、中文、日语和克林贡语字符保留为 UTF-8。

标签: language-agnostic replace utility


【解决方案1】:

Notepad++ 支持此功能,并且就其本身而言是一个很棒的小编辑器。

编辑:实际上,Notepad++ 确实支持文件替换。点击搜索 -> 在文件中查找,然后在对话框中选择“在文件中替换”。

【讨论】:

  • Notepad++ 支持在多个文件中查找,但它不进行此类替换。它使您从生成的列表中打开每个文件,然后在打开的文档中运行替换。
  • 除了他们甚至不支持他们的正则表达式引擎中的惰性修饰符,正如我今天在尝试使用 .*? 匹配时注意到的那样:/
  • Johannes : Dmitri 说 reg-ex 会很好,但不是必需的。不过很高兴指出这些限制。
  • Dmitri :它确实支持在文件中替换 - 请参阅我对答案的编辑。
  • 有趣的是您正在运行哪个版本?我可能正在运行一个过时的版本
【解决方案2】:

本着上一个答案的精神,您可以使用 Perl(它具有无缝的原生 Unicode 支持,并且其 RegEx 功能无与伦比)。有可用的 Windows perl 版本(ActivePerl、Strawberry,或者您可以使用 CygWin),您甚至可以在其上添加 GUI -= 对于后者,you can see what answers are given to my very recent So question :)

另外,Perl 可以抓取几乎无限强大的文件集合,通过使用 glob 处理简单的事情,使用 File::Find 处理更复杂的事情,并在结果文件列表上使用 grep 来进一步完善如果您需要更多花哨的东西,例如按修改时间的内容。

更新 对于 Windows 编辑器,您可以使用 UltraEdit。它有免费评估期,老实说,我觉得购买这个非常好的和强大的编辑器是值得的。在其其他功能中,it supports Unicode, and has pretty fancy search/replace ablities, including Perl RegEx support and S/R in multiple files

【讨论】:

    【解决方案3】:

    使用sed

    【讨论】:

    • 谢谢,有windows二进制文件吗?
    • 当然。你可以安装cygwin.com,但也许有一个独立的版本。
    • Sed 可以从gnuwin32.sourceforge.net/packages/sed.htm 获得,就像大多数标准的 nix 实用程序一样。
    • 好点,RB。我每天都在 cygwin 上使用本机二进制文件 :-)
    • DVK:有时你不应该使用你能得到的最大的锤子,而只是将一个小钉子钉在一块木头上:-)
    【解决方案4】:

    jEdit 有一个名为“HyperSearch”的功能(只需打开查找对话框)。您可以指定一个目录、一个文件名模式,并且 jEdit(基于 Java)确实支持许多不同的编码(并且通常足够聪明,可以找出正确的编码)。

    【讨论】:

      【解决方案5】:

      你可以试试我的编辑器Code Trowel

      如果它不符合您的要求,我可能会修复它:-)

      【讨论】:

        【解决方案6】:

        对于 Windows,Notepad++ 非常棒。它在 GPL 下获得许可。它确实在文件中搜索和替换,并且支持正则表达式。

        【讨论】:

          猜你喜欢
          • 2021-04-18
          • 2013-08-27
          • 2011-07-18
          • 1970-01-01
          • 2014-08-17
          • 2011-02-16
          • 1970-01-01
          • 1970-01-01
          相关资源
          最近更新 更多