【问题标题】:Merging text files with different character encodings合并具有不同字符编码的文本文件
【发布时间】:2016-01-19 07:26:33
【问题描述】:

我正在尝试将目录中文本文件的内容合并到一个文本文件中。

有些文本文件用 ANSI 编码,有些用 UTF-8 编码,有些用 UTF-8 编码,带有 BOM 和其他字符编码。

我尝试与类型和复制命令合并,但结果文件会包含奇怪的字符。例如,“ö”变成“ö”。其他欧洲/重音字母也搞砸了。此外,有些行以“”开头,经过一番调查,实际上是不可见的 BOM 字符。

如何将这些文本文件合并为一个保留其可读形式的文件?我愿意接受 Windows CMD 之外的建议。

【问题讨论】:

    标签: windows text unicode cmd character-encoding


    【解决方案1】:

    您不能盲目地合并文件。如果您知道哪些文件是哪些编码,那么您可以使用工具在合并之前将它们重新编码为通用表示,例如 UTF-8。例如,在 Python 3.x 中,这会将四个不同编码的文件连接成一个通用的 UTF-8 编码文件(未经测试):

    #!python3
    
    files = [('file1.txt','cp1252'),
             ('file2.txt','utf8'),
             ('file3.txt','utf-8-sig'),
             ('file4.txt','chinese')]
    
    with open('output.txt','w',encoding='utf8') as out:
        for filename,encoding in files:
            with open(filename,encoding=encoding) as f:
                out.write(f.read())
    

    【讨论】:

      猜你喜欢
      • 2020-03-07
      • 1970-01-01
      • 1970-01-01
      • 2013-08-07
      • 2021-10-22
      • 1970-01-01
      • 1970-01-01
      • 2014-06-24
      • 2017-09-12
      相关资源
      最近更新 更多