繁体   English   中英

如何填充中文/日文字符,使它们与普通字符对齐,在 .srt 文件中具有相同的宽度(python)

[英]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.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM