ssa/ass无法加载自定义中文字体的问题很常见,几乎所有用过ssa/ass的人都遇到过。有些人通过更改DirectVobSub默认字体的方式暂时解决了该问题。但这毕竟不是根本的解决方法。

  今天,终于搞明白为什么会无法加载自定义中文字体了。其实很简单,DirectVobSub按照指定的文字编码(Encoding)读入字幕并显示。而默认情况下,文字编码为0,即ANSI。在这个状态下,所有文字都会被认为是英文,从而调用Arial字体。而遇到中文按照Arial字体显示,则自动调用宋体。所以,要解决这个问题,只要把文字编码改回中文就行了。

  打开字幕文件,在[V4 Style]区域中找到相应的样式,将最后一个值(即Encoding)从0(ANSI)改为134(GB2312)即可。再次在播放中调用字幕文件,问题已解决,自定义字体显示正常。