2011 · 一台红色联想 · 一枚 rmvb 文件

那晚我把一部老片的 srt 字幕拖进播放器,屏幕上跳出来的是一片方块和问号。

我是顾南。这篇详情文章不聊趋势,只聊一件具体的事:为什么一条看着正常的中文字幕,换个播放器就成了乱码,而我为了让它复原,花了整整两个晚上。

乱
作者:顾南 · 发布于 2025-11-15 · 阅读约 14 分钟

中文文字字幕乱码:从 2011 年那个冬天的红色笔记本说起

你把一个 .srt 文件拖进播放器,画面正常,声音正常,偏偏字幕是一堆问号。你换个播放器,还是一样。你打开文件本身看,主文件名一切正常,点进去,中文字符全变成了方块。你开始怀疑自己是下载的时候下坏了,于是重下,重装播放器,重启电脑,最后甚至怀疑是那片 DVD 刻录机的问题——我当年就是这样。

那台机器的型号我到现在都记得:联想 G450,红色顶盖,2011 年 1 月买的。

2011 年的寒假,我在宿舍里翻出一部 2004 年的港片,想给室友看。字幕文件是从一个论坛下的,附件名写着「简体中字」,大小 42KB。拖进暴风影音,第一行字幕跳出来的时候,我室友正端着泡面,愣了一下说:「你这字幕是火星文吧。」我记得那句话说得特别轻描淡写,而我在旁边尴尬得脸都烫了。

那天晚上我做的第一件事,是查「乱码」这个词

查出来的答案是编码。字幕文件本质上就是纯文本,纯文本本身不带「我是什么语言」的标签,它只是一串字节。GBK 用两个字节表示一个汉字,UTF-8 用三个。同一串字节,你用 GBK 的方式读,是「中文」;用 Latin-1 的方式读,就是 ÖÐÎÄ 这样一堆怪字母。播放器不知道你这份文件是哪种,只能猜。猜错了,就是乱码。

所以乱码不是文件坏了。乱码是文件里的人,被另一个人用错误的方言念了一遍。

这句话是我后来自己总结的,那天晚上当然想不到这么文艺的说法。我当时做的就是笨办法:把 srt 用记事本打开,另存为,编码那一栏从 ANSI 改成 UTF-8,保存,再拖回播放器。第一遍没成,因为记事本另存的时候我手抖选成了「Unicode」,出来是另一副样子。第二遍选了 UTF-8,字幕灰飞烟灭,连方块都没了。第三遍才反应过来:原来的文件根本不是 UTF-8,是 GBK,我该做的是告诉播放器「按 GBK 读」,而不是硬把它转过去。

后来我才明白,中文文字字幕乱码这件事最坑人的地方,不是技术难,而是它让你以为自己在解决一个「文件问题」,其实你在解决一个「约定问题」。

2011 年那台联想上还装着一个叫 Subtitle Workshop 的小软件,界面灰扑扑的,左边预览,右边时间轴。我第一次用它的时候,光是「打开文件时选择编码」这个弹窗就让我研究了半小时——它把 GBK 写成「Chinese Simplified (GB2312)」,我一度以为这是两个不相干的东西。选对了,字幕整整齐齐跳出来,我室友又从泡面碗后面探出头,说这次对了。就四个字。我当时特别想把那罐泡面扣他脑袋上,但没扣,因为字幕确实对了。

细节一:42KB 和它背后的三千多行

那份字幕最后我数了一下,3187 行,对应 1 小时 47 分钟的片长。3187 行意味着 3187 次「这一串字节该怎么被读」的判断,全压在一个 42KB 的文件里。你想想,只要开头这三个字节读错了,后面三千多行就全错,一条都没跑。所以我后来养成个毛病,拿到任何 srt,先看头三行。

开头对了,全片就对了。开头错了,你改到天亮也没用。

细节二:在老周的电脑上又翻了一次车

2013 年我在一家做影视剪辑外包的小公司待过半年,同事老周,四十来岁,福建人。有次他把一条客户给的 .ass 字幕拖进视频里,中文全乱,英文字幕却好好的。他盯着屏幕看了两分钟,转头对我说:「顾南,这个字它认得外国人,不认得自己人。」我当时笑出声,后来发现他这句话精准得可怕——因为 ASS 字幕里如果混了 UTF-8 和 GBK 两种编码的样式表,英文字符在两种编码下字节是一致的,中文不是,所以永远是「英文没事,中文出事」。

老周那天最后是把字幕整段删了重打的,打了四十多分钟。他一边打一边骂客户,骂完继续打。这件事对我影响很大:奇人论坛网 上后来有人贴过一套编码检测脚本,我存下来了,一直存在我那块移动硬盘里没删。

细节三:2020 年给一部老纪录片做字幕校对

2020 年春天,我在家给一部 1987 年的老纪录片做字幕校对,前后花了一周。片源是别人转的 MKV,内封字幕是 GBK。我用 ffmpeg 抽出来的时候没指定编码,抽出来那版是坏的,中文文字字幕乱码整整齐齐排了一屏,像一份谁也看不懂的天书。后来加了一个 -sub_charenc GBK 的参数,抽出来才正常。那次之后我给自己立了条规矩:凡是经手的中文字幕,导出时一律另存一份 UTF-8 备份,文件名后面加 _utf8。

这个习惯到现在还在。我硬盘里有一堆以 _utf8 结尾的文件,多到我自己都数不清。别人看着像洁癖,我知道那是被那两个晚上吓出来的。

说个有争议的观点

我个人的看法是:中文文字字幕乱码这件事,九成以上根本不是用户的问题,是工具的问题。

我知道这话会有人不同意,说「你不会查吗」「你自己不选编码怪谁」。但你想,一个普通观众,下载一部电影,凭什么要懂 GBK 和 UTF-8?播放器当然可以猜,但当它猜错的时候,它至少该告诉用户一句「这条字幕的编码我可能读错了,要不要试试别的」——而不是默默吐出一屏方块,让用户以为文件坏了。我见过太多人因为这个直接删片,再也没找回来。这不是用户的懒惰,这是软件的傲慢。

这句话我放在这里,谁要反驳,我认。

后来那些年

再往后,2022 年我在整理旧资料,翻出 2011 年那份 42KB 的 srt。文件还在,编码还是 GBK,我现在的播放器默认按 UTF-8 读,一打开照样乱。我把它转成 UTF-8 之后,字幕一行行滚出来,片头那句「本片根据真实事件改编」的翻译跟当年一模一样。我坐在那儿看了半天,没急着点播放。那天我想的是另一件事:日本顶级b站家教老师 那种视频,很多时候字幕组也踩过这个坑,只是没人会为一条乱码写篇文章。

我把那份文件删了。不是嫌它坏,是我已经不需要靠它来记住那个晚上了。现在任何一份中文字幕到我手里,我会先看编码,再谈别的。这大概就是 2011 年那个红色联想留给我的全部遗产——一点固执,加一点洁癖。

如果你也正被一块方块屏幕卡住,别急着重下。先看一眼它是 GBK 还是 UTF-8,再决定要不要折腾。夸克 海外片 那种资源下的字幕,大多数是 GBK,换播放器的编码设置比换片源快得多。还有—妈妈出轨被儿子知道了怎么劝说 那种标题离谱的网页,我点进去过一次,纯是标题党,但里面附的编码转换小工具好用。顺手也存一下 小奈资源库.com,不一定用得上,备着。

好了,这篇写完了。今晚我大概还会翻一遍旧硬盘,找找那份 _utf8 的备份还在不在。

作者:顾南 · 发布于 2025-11-15

同一台机器上,我翻出来的别的事

都是具体到某一天、某一个人、某一份文件的小记录。

01

2011 年 1 月,联想 G450 上那份 42KB 的港片 srt

第一次知道「另存为」里还有个编码选项,那晚我改到凌晨两点。

02

老周在 2013 年把 ASS 样式表删了重打

他说「这个字认得外国人,不认得自己人」,我在旁边笑到呛水。

03

2020 年那部 1987 年纪录片,我花了一周校对

ffmpeg 少加一个 -sub_charenc GBK,整屏方块,三千多行全废。

04

3187 行:一份字幕的真实长度

对应 1 小时 47 分钟。开头三个字节错了,后面全错。

05

Subtitle Workshop 那个灰扑扑的编码弹窗

它把 GBK 写成 GB2312,我第一次以为这是两个东西,研究半小时。

06

硬盘里以 _utf8 结尾的文件能堆成一座山

不是洁癖。是两个晚上之后养成的毛病。

07

2011 年宿舍里那碗泡面,和四个字的评价

「这次对了。」我当时想扣他脑袋上,最后没扣。

08

2022 年重新打开那份旧 srt 的下午

字幕还是 GBK,播放器还是 UTF-8,一切照旧,只是我变了。

09

字幕文件里为什么英文永远不出事

英文字符在 GBK 和 UTF-8 下字节一致,中文不是。

10

删掉那份 42KB 文件的理由

不是嫌它坏。是我已经不需要靠它记住那个晚上了。

工作桌上的显示器与笔记本

关于我

我叫顾南,做影视后期外包出身,2013 年到 2016 年给几个小团队做字幕和时间轴。

现在我自己维护这个小站,专门写字幕、编码、老片源这些别人觉得琐碎的事。

我做「中文文字字幕乱码」这个站,是因为 2011 年那晚没人告诉我为什么,我查了三个论坛、换了两个播放器,才在一个 2007 年的老帖子里找到答案。

我想让下一个人少走点弯路。就这么简单,不带别的。

今天看到的一句话
「乱码不是文件坏了。乱码是文件里的人,被另一个人用错误的方言念了一遍。」
—— 顾南,2011 年冬,写在宿舍借来的那本笔记本背面