我有一个 SMI 文件,其中包含 9 种语言的字幕翻译。原始文件使用 UTF-8 编码,因此在记事本中查看文本文件显示正常。
我有 SMI 文件和同名的 WMV 视频,因此视频使用 SMI 文件作为字幕,并为我提供 SMI 文件中所有语言的字幕下拉列表(根据需要):
但是使用此编码,只有英语可以正确显示。任何带有特殊字符的语言文本都会以类似 Wingdings 字体的形式显示。
我尝试将 SMI 文件重新保存为多种编码格式。
保存为 ANSI 格式时,法语、西班牙语、意大利语和德语等具有特殊重音的语言可以正确保存在文件中并在 Windows Media Player 中显示。所有亚洲字符都变成“?”。
当保存为 UCS-2(Unicode)时,所有语言都可以在记事本中正常显示,但 WMP 不再识别 SMI 文件,因此没有可用的字幕。
我该如何编码 SMI 文本文件,以便所有语言都保存在其中并在 Windows Media Player 中正确显示?看来 WMP 在显示字幕时会将所有内容转换为 ANSI。
我必须使用 SMI 文件和 Windows Media Player - 这超出了我的控制范围。
答案1
显然,这个问题的答案是否定的——这是不可能做到的。
http://us.generation-nt.com/cant-get-wmp-recognise-utf-8-sami-file-help-41182582.html
我还给我们的视频软件技术支持发了电子邮件,这是他们的回复:
请注意,大多数网站(包括 Microsoft)不推荐使用 Windows Media Player 播放带隐藏式字幕的文件;他们建议将隐藏式字幕嵌入视频(WMV 文件不支持)或使用功能更强大的媒体播放器(如 VLC Media Player),或者最后将视频创建为 Silverlight 网页(如果可以添加字幕)。在 Windows Media Player 中打开字幕确实没有简单的方法。
答案2
这是可能的。您只需要使用 Unicode 字符的 html 代码。您必须认为 sami 本身是一个不支持 Unicode 的 utf-8 文件(因为如果您输入 Unicode 值,则无法使用 Windows Media Palyer 正确解析和显示它们)。但是,您可以使用所有字母的 html 代码显示支持所有语言的所有类型的 Unicode 字符。这可能是一项繁琐的工作。如果您可以编写脚本或使用编程语言编写代码,这会更容易。