[英]How to pad Chinese/Japanese characters so that they are alligned with normal characters, have the same width in .srt file (python)
我想在单独的行中创建 3 个字符串,这些字符串将以这种方式显示:在终端中
也就是说,水平对齐。 .srt 文件中保存的结果字符串如下所示:在网络视频播放器中
我已经尝试用各种空格替换空格,但没有成功。
我用于填充的代码位:
def pad(strings):#"strings" contain 3 strings seen as one column seperated by "|" in terminal
lengths=[2*len(strings[0]),len(strings[1]),len(strings[2])]#japanese/chinese chars are multiplied by 2
max_len=max(lengths) #because in terminal they take up two spaces
for i in range(len(lengths)):
if lengths[i] < max_len:
diff_len = max_len-lengths[i]
append_spaces=(int)(diff_len/2)
#below I add spaces so that they are alligned, this works in terminal,
#not in video player with loaded srt
strings[i] = " "*append_spaces + strings[i] + " "*append_spaces + " "*(diff_len%2)
return strings
使用 .srt 文件对我来说很重要,没有任何样式。 这是在大多数网络媒体播放器中正确识别它的唯一方法。 如果没有办法解决它,我怎么能用任何其他字幕格式实现在终端中看到的结果?
对于偶然发现相同问题的任何人,解决方案是使用等宽字体,其中(至少在我的情况下)每个汉字和假名符号的宽度是正常字符的两倍。 唯一对我有用的是这里的“unifont_jp-14.0.01.ttf”。 安装该字体后,我可以在带有 .srt 文件的 vlc 中使用它,或者使用字幕编辑器创建嵌入该字体并采用更高级文件格式的字幕。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.