建议SRT字幕编码统一为Unicode格式(附UTF-8编码区别)
2010-04-06 23:57
246 查看
最近业余时间主要在研究高清机器,这东东(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]
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。
现在的高清节目源主要来自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]
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。
相关文章推荐
- 关于编码(Unicode)与转换格式(UTF)的区别
- UNICODE,GBK,UTF-8:编码格式的区别
- UNICODE,GBK,UTF-8:编码格式的区别
- UNICODE,GBK,UTF-8:编码格式的区别
- ANSI,Unicode,UTF-8网页编码的区别
- 编码格式简介(ANSI、GBK、GB2312、UTF-8、GB18030和 UNICODE)
- 编码格式说明及Unicode与utf-8互转
- ASCII、Unicode和UTF-8编码的区别
- 编码格式简介(ANSI、GBK、GB2312、UTF-8、GB18030和 UNICODE)
- ASCII、Unicode、GBK和UTF-8字符编码的区别联系(转载)
- ASCII、Unicode和UTF-8编码的区别;中英文混合截取
- utf-8 unicode 各种编码的区别与联系
- ASCII、Unicode、GBK和UTF-8字符编码的区别联系
- 编码格式简介(ANSI、GBK、GB2312、UTF-8、GB18030和 UNICODE)(转)
- ANSI,Unicode,UTF-8网页编码的区别
- ASCII、Unicode、GBK和UTF-8字符编码的区别联系
- <转>趣谈unicode,ansi,utf-8,unicode big endian这些编码有什么区别
- ASCII、Unicode、GBK和UTF-8字符编码的区别联系
- unicode,ansi,utf-8,unicode big endian编码的区别
- unicode ansi utf-8 unicode_big_endian编码的区别