先把话说透:乱码不是中文消失了
很多人看到中文字幕乱码,会以为字幕文件被破坏。其实大多数时候,中文还在,只是播放器拿错了字典。比如同一串字节,用GBK读是“你好”,用别的编码读就可能变成“ÄãºÃ”。
字幕文件本质上是文本文件。SRT里有序号、时间轴、对白;ASS里还多了样式和特效。只要文本部分保存编码没被正确识别,就会出现方块、问号、锟斤拷、拉丁乱码这些现象。
中文字幕乱码是什么?一句话说,就是字幕里的中文字符,被软件按错误的规则解读了。它不神秘,也不一定代表文件损坏。弄清“字符、编码、播放器”这三层关系,很多看似玄学的问题都会变得很直白,修起来也不费劲。
很多人看到中文字幕乱码,会以为字幕文件被破坏。其实大多数时候,中文还在,只是播放器拿错了字典。比如同一串字节,用GBK读是“你好”,用别的编码读就可能变成“ÄãºÃ”。
字幕文件本质上是文本文件。SRT里有序号、时间轴、对白;ASS里还多了样式和特效。只要文本部分保存编码没被正确识别,就会出现方块、问号、锟斤拷、拉丁乱码这些现象。
一种是整篇都乱,打开就是“ÏÂÒ»¼¯”这类字符,十有八九是GBK被当成其他编码读了。一种是部分乱,常出现在人名、标点、歌词符号上,可能混入了特殊字符。
还有一种像空白,不显示中文,只剩时间轴。这种要看字体。ASS字幕指定了某个中文字体,而设备没有,少数播放器会渲染失败。严格说这不完全是编码乱码,但用户看到的结果差不多:字幕不可读。
英文字符历史包袱轻,很多编码里都能比较稳定地对应。中文字符数量大,GB2312、GBK、Big5、UTF-8这些体系都曾长期存在。字幕资源又常在不同系统之间流转,Windows、Mac、手机、电视各有脾气。
老电影字幕、早年论坛字幕、压缩包里带的字幕,尤其容易是GBK或Big5。现在平台和工具更偏向UTF-8,所以旧文件到了新设备上,就容易被读错。不是中文麻烦,是历史版本太多。
一是把时间轴错误当乱码。字幕中文正常,但一句话提前十秒或延后十秒,这是帧率、版本、剪辑长度不一致,改编码没用。二是把繁体字幕当乱码。繁体能读,只是字形不同,不需要修复。
还有人看到内嵌字幕花了想转码。硬字幕已经压进画面,像照片上的字,没法用文本工具修。只有外挂SRT、ASS,或者MKV里的软字幕轨,才有处理空间。
明白中文字幕乱码是什么后,处理顺序就很清楚:先用文本编辑器看字幕是否能正常显示;能显示就让播放器按正确编码读;不能显示就试着切换编码或找原版字幕。
最稳的长期做法,是把常用字幕统一成UTF-8,文件名和视频名保持一致。这样在电脑、电视、手机之间来回用,出问题的概率会低很多。
主要是字幕文件编码和播放器识别编码不一致。常见组合是GBK字幕被播放器按UTF-8读取。
“锟斤拷”常见于错误解码后又被保存,说明文字经历过编码误读。若原文件还在,回到原文件重新转码更好。
不是。乱码是文字读不懂,字幕不同步是时间轴不匹配。前者改编码,后者调时间或换对应片源字幕。