Transformieren Sie das Codierungsformat von Textdateien wie ASCII, GB2312, UTF8 usw. stapelweise und konvertieren Sie es gegenseitig Die Größe des Zeichensatzes ist utf8> gb2312>ascii, daher ist es am besten, gb2312 in utf8 zu konvertieren, da sonst leicht verstümmelte Zeichen angezeigt werden. Der Hauptunterschied zwischen gb2312 und utf-8: Chinesische Schriftzeichen)
Informationen zur Speichergröße: UTF-8> und lädt schneller)#🎜 🎜#Über den Anwendungsbereich
: gb2312 wird hauptsächlich auf dem chinesischen Festland verwendet. Es handelt sich um einen lokalisierten Zeichensatz, der UTF-8 enthält Es wird in allen Ländern der Welt verwendet und ist universell. UTF-8-codierter Text kann in Browsern in verschiedenen Ländern angezeigt werden, die den UTF8-Zeichensatz unterstützen.import sys import chardet import codecs def get_encoding_type(fileName): '''print the encoding format of a txt file ''' with open(fileName, 'rb') as f: data = f.read() encoding_type = chardet.detect(data) #print(encoding_type) return encoding_type # such as {'encoding': 'GB2312', 'confidence': 0.99, 'language': 'Chinese'} def convert_encoding_type(filename_in, filename_out, encode_in="gb2312", encode_out="utf-8"): '''convert encoding format of txt file ''' #filename_in = 'flash.c' #filename_out = 'flash_gb2312.c' #encode_in = 'utf-8' # 输入文件的编码类型 #encode_out = 'gb2312'# 输出文件的编码类型 with codecs.open(filename=filename_in, mode='r', encoding=encode_in) as fi: data = fi.read() with open(filename_out, mode='w', encoding=encode_out) as fo: fo.write(data) fo.close() # with open(filename_out, 'rb') as f: # data = f.read() # print(chardet.detect(data)) if __name__=="__main__": # fileName = argv[1] # get_encoding_type(fileName) # convert_encoding_type(fileName, fileName) filename_of_files = sys.argv[1] #the file contain full file path at each line with open(filename_of_files, 'rb') as f: lines = f.readlines() for line in lines: fileName = line[:-1] encoding_type = get_encoding_type(fileName) if encoding_type['encoding']=='GB2312': print(encoding_type) convert_encoding_type(fileName, fileName) print(fileName)
xml_path = './' with open(xml_path , 'rb+') as f: content = f.read() codeType = detect(content)['encoding'] content = content.decode(codeType, "ignore").encode("utf8") fp.seek(0) fp.write(content)
Das obige ist der detaillierte Inhalt vonSo verwenden Sie Python, um das Codierungsformat von Textdateien stapelweise zu ändern. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!