Mac下CSV中文乱码问题解决方法

本文介绍了一个简单的解决方案来解决Mac系统下CSV文件在Excel中打开时出现的中文乱码问题。通过使用Automator创建一个服务,该服务利用iconv命令将文件编码从UTF-8转换为GBK。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

Mac下生成CSV文件,用Excel打开时经常会遇到中文乱码的问题。例如下图所示,有一个文件“users.csv”,里面的内容是中文,并且选中文件后点击空格预览,也能正常显示中文。
Mac下CSV中文乱码问题解决方法 但用Excel打开时,就变成一堆乱码。如下图所示:
Mac下CSV中文乱码问题解决方法 究其原因是Mac下文本的默认编码是UTF-8,而Excel对中文的处理是GBK编码。(听不懂?我只是在胡说八道罢了,继续往下看解决方案!)。

解决方法很简单,1)首先打开Mac下自带的“Automator”。如下图所示:
Mac下CSV中文乱码问题解决方法 2)点击左下角的“新建文稿”按钮。
Mac下CSV中文乱码问题解决方法 3)选择服务类型
Mac下CSV中文乱码问题解决方法 4)创建Shell脚本
  1. 在左上角的输入框中输入“Shell”,看到“运行Shell脚本”这一项
  2. 将“运行Shell脚本”这一项用鼠标拖拽到右边的空白区域,松开鼠标就能看到如下图所示的界面
  3. “服务收到选定的,这一项选择“文稿”
  4. 位于,这一项选择“Finder.app”
  5. Shell,这一项选择“/bin/bash”
  6. 传递输入,这一项选择“作为自变量”
  7. 文本框中输入如下代码:
for f in "$@"; do
    if [ -f "$f" ]; then
        iconv -s -c -f UTF8 -t GBK "$f" > /tmp/iconv.utf8.gbk.tmp
        mv /tmp/iconv.utf8.gbk.tmp "$f"
    fi
done

【原来的备份:

for f in "$@"

do

echo "$f"

done

Mac下CSV中文乱码问题解决方法5)点击菜单“文件”-“保存”,为服务取一个名字,例如“CSV文件编码转换”
Mac下CSV中文乱码问题解决方法 6)关闭“Automator”。在Finder中找到之前的“users.csv”,右击鼠标,就能看到右击菜单中多出了一项“CSV文件编码转换”,如下图所示:
Mac下CSV中文乱码问题解决方法 
7)点击这一项,等待数秒(右上角会出现一个小齿轮,并快速消失),再用Excel重新打开,就会看到转换好的文件
http://ww2.sinaimg.cn/large/69e22590gw1f0j7by9ny8j20y80si44v.jpg
### Mac 上打开 CSV 文件时中文乱码解决方案 在开发环境中生成的 CSV 文件如果包含中文字符,在传输至 macOS 平台后可能会遇到乱码问题。这通常是由编码不一致引起的,具体表现为开发环境中的 UTF-8 编码与 macOS 或 Excel 的 GBK/GB2312 编码之间的差异。 #### 问题分析 当在开发机上生成 CSV 文件时,默认使用的可能是 UTF-8 编码[^1]。然而,macOS 下的某些应用程序(尤其是 Microsoft Excel),对于中文字符更倾向于使用 GBK 或 GB2312 编码来解析文件[^2]。这种编码不匹配会直接导致乱码现象的发生。 #### 解决方案 以下是几种常见的解决方法: 1. **调整保存时的编码格式** 在生成 CSV 文件的过程中,可以指定文件的编码方式为 `utf-8-sig`。这种方式会在文件头部添加 BOM (Byte Order Mark),帮助部分程序识别文件的实际编码格式。 ```python import csv with open('output.csv', 'w', newline='', encoding='utf-8-sig') as csvfile: writer = csv.writer(csvfile) writer.writerow(['列名1', '列名2']) writer.writerow(['测试数据1', '测试数据2']) ``` 此种方法适用于 Python 开发场景下的 CSV 文件生成过程[^3]。 2. **手动转换文件编码** 如果已经生成了一个带有乱码CSV 文件,则可以通过命令行工具将其重新编码为适合的目标格式。例如,利用 `iconv` 工具完成编码转换操作: ```bash iconv -f utf-8 -t gb18030 input.csv -o output.csv ``` 这里 `-f` 参数指定了原始文件的编码格式 (`utf-8`),而 `-t` 则定义了目标编码格式 (`gb18030`)。通过此步骤可有效修复已存在的乱码问题。 3. **修改应用设置** 对于特定的应用软件来说,也可以尝试更改其内部选项以支持不同的编码标准。比如在 Numbers 应用中导入 CSV 数据前先确认选择了正确的文本编码;或者是在 Excel 中加载外部数据源时明确指出所采用的具体编码形式。 综上所述,无论是预防还是事后补救措施都围绕着统一整个工作流内的文字编码展开讨论并提供了解决策略。
评论 6
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值