Python 从ANSI转换为UTF-8

Python 从ANSI转换为UTF-8,python,r,notepad++,Python,R,Notepad++,我有大约600000个文件是用ANSI编码的,我想把它们转换成UTF-8。我可以在NOTEPAD++中单独执行此操作,但对于600000个文件,我无法执行此操作。我可以在R或Python中执行此操作吗 我找到了此链接,但Python脚本未运行: 为什么不读取文件并将其作为UTF-8写入?您可以在Python中实现这一点 #to support encodings import codecs #read input file with codecs.open(path, 'r', encodin


我有大约600000个文件是用
ANSI
编码的,我想把它们转换成
UTF-8
。我可以在
NOTEPAD++
中单独执行此操作,但对于600000个文件,我无法执行此操作。我可以在
R
Python
中执行此操作吗

我找到了此链接,但
Python
脚本未运行:

为什么不读取文件并将其作为UTF-8写入?您可以在Python中实现这一点

#to support encodings
import codecs

#read input file
with codecs.open(path, 'r', encoding = 'utf8') as file:
  lines = file.read()

#write output file
with codecs.open(path, 'w', encoding = 'utf8') as file:
  file.write(lines)

我明白这是一个老问题,但最近刚刚解决了一个类似的问题,我想我会分享我的解决方案

我有一个程序正在准备一个文件,我需要将其导入sqlite3数据库,但文本文件总是“ANSI”,sqlite3需要UTF-8

ANSI编码在python中被识别为“mbcs”,因此,我使用的代码是我发现的其他代码:

blockSize = 1048576
with codecs.open("your ANSI source file.txt","r",encoding="mbcs") as sourceFile:
    with codecs.open("Your UTF-8 output file.txt","w",encoding="UTF-8") as targetFile:
        while True:
            contents = sourceFile.read(blockSize)
            if not contents:
                break
            targetFile.write(contents)
下面的链接包含我在研究中发现的编码类型的一些信息


使用“ANSI”表示“Windows-1252”编码?@klauds。它在Notepad++中显示为ANSI。请注意,“lakh”不是来自标准(美国/英国==国际)英语的单词。世界各地的许多人都不知道“lakh”是什么。ANSI不是一种编码。“lakh”是什么?@hd1lakh是一个南亚单词,代表100k。读一个不同的utf-8代码页会不会丢失一些字符?(我曾经认为在编写另一个代码页之前,您必须阅读正确的代码页)?来自Python规范:注意:文件总是以二进制模式打开,即使没有指定二进制模式。这样做是为了避免由于使用8位值编码而导致的数据丢失。这意味着在读取和写入时不会自动转换“\n”。我必须将读取编码更改为“cp1252”才能使其正常工作。它仍然以UTF-8打开,否则在遇到混合文件时会出现错误:
“UTF-8”编解码器无法解码字节0x92