txt文本转编码格式(支持utf-8、GBK、GB2312、GB18030、BIG5等所有编码格式)

2024-05-11 15:20

本文主要是介绍txt文本转编码格式(支持utf-8、GBK、GB2312、GB18030、BIG5等所有编码格式),希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

txt文本转编码格式(支持utf-8、GBK、GB2312、GB18030、BIG5等所有编码格式)

脚本的使用方法

创建一个convert_to_utf8的python文件,将代码复制保存。
在终端输入以下命令,即可实现自动检测原文件的编码格式,并生成对应的新文件:

python convert_to_utf8.py 原文件.txt 新文件.txt

当然,也可以指定原文件的编码格式:

python convert_to_utf8.py 原文件.txt 新文件.txt --encoding Big5 
import argparse
import chardetdef detect_encoding(file_path):"""Detect the encoding of a file."""with open(file_path, 'rb') as file:raw_data = file.read(10000)  # Read enough of the file to detect encodingresult = chardet.detect(raw_data)print(f"Detected encoding: {result['encoding']} with confidence {result['confidence']}")return result['encoding']def convert_to_utf8(input_file, output_file, encoding=None):"""Convert a file to UTF-8 encoding using a specified or detected encoding."""if not encoding:encoding = detect_encoding(input_file)try:with open(input_file, 'r', encoding=encoding, errors='ignore') as file:content = file.read()with open(output_file, 'w', encoding='utf-8') as file:file.write(content)print(f"文件已成功转换并保存为:{output_file},使用的编码:{encoding}")except Exception as e:print(f"转换过程中发生错误:{e}")if __name__ == "__main__":parser = argparse.ArgumentParser(description="Convert text file encoding to UTF-8 using a specified or detected encoding.")parser.add_argument("input_file", help="The path to the input file.")parser.add_argument("output_file", help="The path to the output file where the UTF-8 encoded file will be saved.")parser.add_argument("--encoding", help="Optionally specify the encoding to override automatic detection.", default=None)args = parser.parse_args()convert_to_utf8(args.input_file, args.output_file, args.encoding)

这篇关于txt文本转编码格式(支持utf-8、GBK、GB2312、GB18030、BIG5等所有编码格式)的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/979913

相关文章

C++ | Leetcode C++题解之第393题UTF-8编码验证

题目: 题解: class Solution {public:static const int MASK1 = 1 << 7;static const int MASK2 = (1 << 7) + (1 << 6);bool isValid(int num) {return (num & MASK2) == MASK1;}int getBytes(int num) {if ((num &

C语言 | Leetcode C语言题解之第393题UTF-8编码验证

题目: 题解: static const int MASK1 = 1 << 7;static const int MASK2 = (1 << 7) + (1 << 6);bool isValid(int num) {return (num & MASK2) == MASK1;}int getBytes(int num) {if ((num & MASK1) == 0) {return

easyui同时验证账户格式和ajax是否存在

accountName: {validator: function (value, param) {if (!/^[a-zA-Z][a-zA-Z0-9_]{3,15}$/i.test(value)) {$.fn.validatebox.defaults.rules.accountName.message = '账户名称不合法(字母开头,允许4-16字节,允许字母数字下划线)';return fal

form表单提交编码的问题

浏览器在form提交后,会生成一个HTTP的头部信息"content-type",标准规定其形式为Content-type: application/x-www-form-urlencoded; charset=UTF-8        那么我们如果需要修改编码,不使用默认的,那么可以如下这样操作修改编码,来满足需求: hmtl代码:   <meta http-equiv="Conte

[数据集][目标检测]血细胞检测数据集VOC+YOLO格式2757张4类别

数据集格式:Pascal VOC格式+YOLO格式(不包含分割路径的txt文件,仅仅包含jpg图片以及对应的VOC格式xml文件和yolo格式txt文件) 图片数量(jpg文件个数):2757 标注数量(xml文件个数):2757 标注数量(txt文件个数):2757 标注类别数:4 标注类别名称:["Platelets","RBC","WBC","sickle cell"] 每个类别标注的框数:

Python脚本:TXT文档行数统计

count = 0 #计数变量file_dirs = input('请输入您要统计的文件根路径:')filename = open(file_dirs,'r') #以只读方式打开文件file_contents = filename.read() #读取文档内容到file_contentsfor file_content in file_contents:

Level3 — PART 3 — 自然语言处理与文本分析

目录 自然语言处理概要 分词与词性标注 N-Gram 分词 分词及词性标注的难点 法则式分词法 全切分 FMM和BMM Bi-direction MM 优缺点 统计式分词法 N-Gram概率模型 HMM概率模型 词性标注(Part-of-Speech Tagging) HMM 文本挖掘概要 信息检索(Information Retrieval) 全文扫描 关键词

一步一步将PlantUML类图导出为自定义格式的XMI文件

一步一步将PlantUML类图导出为自定义格式的XMI文件 说明: 首次发表日期:2024-09-08PlantUML官网: https://plantuml.com/zh/PlantUML命令行文档: https://plantuml.com/zh/command-line#6a26f548831e6a8cPlantUML XMI文档: https://plantuml.com/zh/xmi

Golang支持平滑升级的HTTP服务

前段时间用Golang在做一个HTTP的接口,因编译型语言的特性,修改了代码需要重新编译可执行文件,关闭正在运行的老程序,并启动新程序。对于访问量较大的面向用户的产品,关闭、重启的过程中势必会出现无法访问的情况,从而影响用户体验。 使用Golang的系统包开发HTTP服务,是无法支持平滑升级(优雅重启)的,本文将探讨如何解决该问题。 一、平滑升级(优雅重启)的一般思路 一般情况下,要实现平滑

sqlite不支持中文排序,采用java排序

方式一 不支持含有重复字段进行排序 /*** sqlite不支持中文排序,改用java排序* 根据指定的对象属性字段,排序对象集合,顺序* @param list* @param field* @return*/public static List sortListByField(List<?> list,String field){List temp = new ArrayList(