问题从「看不见的字符」开始
某个下午,我们的小型团队在Mac mini上生成了业务数据文件,想将其传递给Windows设备上的自动化机器人。当时想着「应该很简单」。
但打开Windows上的文件时,混合了多语言的文本(韩文、英文)看起来是乱码。特殊字符和空白也完全混乱。
同一个文件在Mac上看起来很清楚,但在Windows上却显示「???」,这就是问题所在。
Claude Code发现的真凶
我们向Claude Code解释了状况,并要求检查文件编码。
回应:
「Mac mini默认使用UTF-8编码,但Windows环境会尝试用UTF-16或本地编码(韩文系统的情况下是EUC-KR)来读取。转换过程中某些字节被丢失了。」
解决方案(非开发者也能做到)
步骤1:用Python脚本重新编码
import pandas as pd
# 读取从Mac mini生成的UTF-8文件
df = pd.read_csv('data_from_mac.csv', encoding='utf-8')
# 添加UTF-8 BOM使Windows能稳定读取
df.to_csv('data_for_windows.csv', encoding='utf-8-sig', index=False)
关键点: `utf-8-sig`会在文件开头添加BOM(字节顺序标记),让Windows自动识别。
步骤2:通过Google Sheets进行同步
不用CSV,而是用Google Sheets作为中间站点。
• Mac mini的自动化将数据写入Google Sheets
• Windows设备上的机器人通过Sheets API接收数据
• 不用担心编码问题(Google负责处理)
步骤3:验证Windows设备设置
将Windows文字输入方式明确设为UTF-8:
# PowerShell(管理员权限)
Set-ItemProperty -Path 'HKLM:\SYSTEM\CurrentControlSet\Control\Nls\CodePage' -Name ACP -Value 65001
(需要重新启动)
学到的东西
从非开发者的角度,「为什么同样的数据看起来不同?」令人沮丧。但背后隐藏着OS各自文字编码的历史差异。Mac(基于UNIX)和Windows的默认设置完全不同。
如果团队经常移动数据,最安全的做法是使用中间媒介(Google Sheets、云端数据库)。
我们的团队现在已经把标准改为Google Sheets + API组合,而不是直接传输CSV文件。这是个小改变,但自动化变得更加稳健了。