建议SRT字幕编码统⼀为Unicode格式(附UTF-8编码区别)最近业余时间主要在研究⾼清机器,这东东(RT1703DD⽅案)其实就是⼀台嵌⼊式系统的电脑,Linux系统的可供DIY的地⽅不少。
现在的⾼清节⽬源主要来⾃PT交流,美剧和⼤⽚的字幕来源主要靠⽹友⾃发组织的翻译组。
SRT现在已经是电脑和⾼清机上最普遍的字幕格式,以前⼀般保存格式为ANSI的⽂本,现在也有Unicode或者UTF-8格式的出现。
电脑上问题不⼤,字幕识别⽐较智能化,但⾼清机⼀般需要设置。鉴于字符集的关系,建议放弃以往的ANSI,统⼀保存为Unicode(默认为UTF-16)。现在很多MKV封装的字幕已经在使⽤Unicode格式,⾼清机设置为ANSI字幕时会乱码,需要改设。
Unicode是现在⽹页制作的标准编码,未来应该也是SRT字幕的规范的⽅向。⾝体⼒⾏,我⽬前收的所有影视资料的SRT字幕如果不是Unicode,已经统⼀转成这个格式,便于⾼清机油们交流。
附: unicode是⼀种统⼀编码,把所有语⾔各种单位都赋予⼀个编码。unicode定义的字符编码默认是每字符4个字节32位。这种完整的32位编码⽅式就是UCS-4:
1、UTF-32,UCS-4,32位
2、UTF-8保持字母数字⼀个字节,其它的⽤不定长编码到最多到6个字节,⽀持到31位编码。前64K的unicode(UCS-2)编成UTF-8只需3个字节。
3、UTF-16以及UTF-7(UTF-7是UTF-16的⼆次编码)⽀持到1M+64K编码范围,使⽤2-4个字节编码。⽬前应该没有字符编码超过1M 之外。[1]
unicode汉字4、UCS-2也就是普通Windows使⽤的Unicode⼦集。他只能表⽰64K的编码范围。对有些偏僻汉字超出64k是⽆法编码的。这⾥UCS-2不等同于UTF-16。UCS-2每个字符固定两个字节。UTF-16是2/4个字节。
5、UCS-2和UTF-16的区别在于是否⽀持4字节编码。Unicode定义时保留了D800-DFFF区间的编码。这段编码是没有对应字符的,只⽤于UTF-16内部使⽤。⽅法是:1M+64M的编码减去64K后得到1M范围(20位),⾼10位⽤D800-DBFF表⽰,低10位⽤DC00- DFFF 表⽰,这个就是UTF-16的ensurrogate编码⽅式。
6、为什么⽤UTF-8。只是因为UTF-8的两个优点,128以下编码和单字节处理软件兼容。第⼆个是UTF-8的多字节编码没有部分字节混淆问题。⽐如删除半汉字后整⾏乱码的问题在UTF-8⾥是不会出现的(UTF-16也有相同的特点);任何⼀个字节的损坏都只影响对应的那个字符,其它字符都可以完整恢复。
[1] 部分软件如UltraEdit、Editplus等保存为Unicode其实默认为UTF-16。
版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。
发表评论