CSV乱码解决:CSV转UTF-8 BOM格式转换工具

如果CSV打开乱码,一般解决方法是:用记事本打开,另存为UTF-8 BOM。保存ok。

但CSV文件很大就很难了,因为加载效率很低。

或者你日常和数据打交道,每次都要打开保存,操作很繁琐——

>>>>  那么这款小工具适合你:

(以下内容看图就行)

工具概述

这是一款专注于单一功能的桌面应用:将CSV文件快速转换为UTF-8 BOM编码格式。它采用了直观的拖放界面,无需复杂设置,几秒钟内即可完成转换,让数据在Excel、数据库导入工具等各类应用中正确显示中文、日文等特殊字符。

详细使用指南

基本操作流程

  1. 启动应用:双击打开应用后,您将看到一个简洁的主界面,中央有一个明显的拖放区域。

  2. 添加文件:有两种方式添加CSV文件:

    • 直接从文件资源管理器拖拽文件到应用界面
    • 点击拖放区域,通过文件选择对话框选择文件
  3. 开始转换:文件添加后会显示在列表中,点击"立即转换"按钮开始处理。

  4. 查看结果:转换完成后,原目录中会生成新的UTF-8 BOM格式文件,命名为"原文件名_utf8_bom.csv"。

实际应用场景

这款工具在以下场景特别有用:

  • 数据分析准备:将从各种系统导出的CSV文件统一转换为UTF-8 BOM格式,确保数据分析工具正确读取
  • 跨系统数据迁移:在Windows与Mac/Linux系统间传输数据文件时,确保字符编码一致
  • 多语言数据处理:处理包含中文、日文、韩文等非ASCII字符的数据集
  • Excel导入优化:解决Excel打开CSV文件时中文显示乱码的问题

源代码

资源包里也有源码,可以自己调试改一下!

核心转换功能:

def convert_files(self, files_to_convert):
    """执行转换操作"""
    completed = 0
    success_count = 0
    
    for i, file_info in enumerate(files_to_convert):
        # 更新进度
        self.root.after(0, lambda i=i, total=len(files_to_convert): 
            self.progress_label.config(text=f"正在处理 ({i+1}/{total})"))
        
        # 更新文件状态
        self.root.after(0, lambda fi=file_info: self.update_file_status(fi, "转换中"))
        
        try:
            # 读取原始文件
            df = pd.read_csv(file_info["path"])
            
            # 生成新路径
            directory = os.path.dirname(file_info["path"])
            filename = os.path.basename(file_info["path"])
            base_name = os.path.splitext(filename)[0]
            new_name = f"{base_name}_utf8_bom.csv"
            new_path = os.path.join(directory, new_name)
            
            # 模拟处理时间
            time.sleep(0.5)
            
            # 保存为UTF-8 BOM
            df.to_csv(new_path, index=False, encoding="utf-8-sig")
            
            # 更新状态
            self.root.after(0, lambda fi=file_info: self.update_file_status(fi, "已完成"))
            success_count += 1
            
        except Exception as e:
            # 更新状态为失败
            self.root.after(0, lambda fi=file_info, err=str(e): 
                self.update_file_status(fi, "失败", error=err))
        
        completed += 1
    
    # 完成后更新UI
    self.root.after(0, lambda: self.finish_conversion(success_count, len(files_to_convert)))

下载地址

关注并私信博主,或从顶部链接下载!

https://download.youkuaiyun.com/download/calvin189s/90481216

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值