为什么字幕会乱码
SRT 和 ASS 文件里没有写明自己用的是什么编码,播放器只能去猜。字幕网站和网盘里的很多中文字幕,尤其是几年前的老字幕,是用 GBK 保存的;而智能电视、Plex、Jellyfin、Kodi 大多默认按 UTF-8 读取,中文就变成 � 或方块。反过来,UTF-8 字幕被按 GBK 读取时,会显示成 浣犲ソ、瀛楀箷 这样的生僻字。
乱码
1 00:00:01,000 --> 00:00:03,500 鎴戜滑浠婃櫄鍘荤湅鐢靛奖 2 00:00:04,000 --> 00:00:06,000 鍑犵偣鍦ㄩ棬鍙h
修复后
1 00:00:01,000 --> 00:00:03,500 我们今晚去看电影 2 00:00:04,000 --> 00:00:06,000 几点在门口见
常见的乱码样子
�或空白方块:GBK 字幕被按 UTF-8 读取。文件里的字节其实都还在,用原始文件就能完整恢复。浣犲ソ、瀛楀箷:UTF-8 字幕被按 GBK 读取。常见于 Windows 上的老播放器和一些电视盒子。ÄãºÃ、×ÖÄ»:GBK 字幕在国外的播放器或西文系统中显示。这类旧文件的转换见 GBK 转 UTF-8。いゅ辊这样夹着日文假名的字:繁体 Big5 字幕被按 GBK 读取,下面单独说明。
乱码
00:00:01,000 --> 00:00:03,500 ÖÐÎÄ×ÖÄ»ÒѾͬ²½
修复后
00:00:01,000 --> 00:00:03,500 中文字幕已经同步
修复步骤
- 把
.srt或.vtt字幕文件拖到上面的框中。 - Mojibuster 自动识别 GBK、GB18030、Big5 和 UTF-8,并修复乱码。用哪种编码读取的,会显示在结果区。
- 点击 下载,得到 UTF-8 格式的字幕,替换视频旁边的旧文件。文件名要和视频保持一致,播放器才会自动加载。
时间轴、序号、换行和斜体等格式标签都不会被改动,只有乱码的文字会被修复。
ASS、SSA 字幕怎么办
双语字幕和特效字幕常用 .ass 或 .ssa 格式。文件选择框目前不直接接受这两种扩展名,但它们和 SRT 一样是纯文本:把文件名改成 .txt,修复后下载,再把扩展名改回 .ass 就行。样式里的字体名(例如 微软雅黑)如果也乱了,会一起被修复。
如果编辑器里显示的是 �,请用改扩展名的方法处理原始文件,不要复制粘贴:� 里已经没有原来的字节了。
简体和繁体字幕互相乱码
繁体字幕多半来自台湾或香港,使用 Big5 编码。简体中文 Windows 和不少播放器会按 GBK 读取它,于是 中文字幕 变成 いゅ辊 这样夹杂日文假名和生僻字的乱码,有的字甚至显示为空白。反过来,GBK 字幕在繁体系统上会变成 笢恅趼躉。
这类文件请直接拖入原始文件:Mojibuster 会比较 GBK、Big5 等读法,选出最合理的一种;如果选错了,可以点击结果区提示中的 按 … 读取 换一种编码。注意:Mojibuster 只修复编码,不做简繁转换,Big5 字幕修复后仍然是繁体字。
各播放器的提示
- VLC:在 工具 → 偏好设置 → 字幕 / OSD 中可以设置默认编码。但只能设一种,GBK 和 UTF-8 字幕混在一起时总有一部分会乱码。
- PotPlayer:通常能自动识别编码,识别错误时可以在字幕设置里手动指定字符集。
- Kodi:设置中可以为字幕指定字符集,同样只能选一种。
- Plex、Jellyfin、Emby 和智能电视:基本都按 UTF-8 读取,外挂字幕请统一保存为 UTF-8(不带 BOM)。
- WebVTT(
.vtt)按规范必须是 UTF-8。
以后怎样避免
- 下载字幕后先统一转成 UTF-8,再放进媒体库。
- 用 Aegisub 等工具编辑字幕时,保存为 UTF-8。
- 在 Notepad++ 中可以查看和转换单个文件的编码。
- 不要把显示乱码的字幕直接另存:乱码被保存后可能变成
锟斤拷,原来的文字就丢失了(参见 乱码是什么?)。
常见问题
字幕里的 � 能修复吗?
要看 � 在哪里。如果是播放器把原始字幕显示成 �,文件本身没坏,把原始文件拖进来就能恢复。如果 � 已经被保存进文件,原来的文字就丢失了,只能重新下载字幕。
修复后时间轴会变吗?
不会。只改乱码的文字,时间轴、序号和换行(包括 Windows 的 CRLF)都保持不变。
电视上外挂字幕乱码怎么办?
大多数智能电视和电视盒子只认 UTF-8。用 Mojibuster 把字幕转成 UTF-8,和视频放在同一个文件夹并使用相同的文件名,再重新播放。
能把字幕转回 GBK 吗?
目前只能保存为 UTF-8。现在几乎所有播放器都支持 UTF-8,一般不需要 GBK。
字幕文件会被上传吗?
不会。处理完全在浏览器中进行,文件不会离开你的设备。