找回密码
 立即注册
查看: 126|回复: 2

【小技巧】将ASS字幕正文中用于分隔的半角空格(0x20)替换为全角空格(0x3000)

  • TA的每日心情
    慵懒
    5 天前
  • 签到天数: 184 天

    [LV.7]常住居民III

    5

    主题

    36

    回帖

    388

    VC币

    荣誉会员

    Rank: 14Rank: 14Rank: 14Rank: 14

    积分
    134937
    ssh_0224 发表于 6 天前 | 显示全部楼层 |阅读模式
    本帖最后由 ssh_0224 于 2025-9-28 21:18 编辑

    研究这个纯粹是强迫症犯了,觉得半角空格留的空间太小了。

    所需工具:
    ① VSCode
    ② VSCode插件【Lyrics/Subtitles Support】

    VSCode和其字幕插件

    VSCode和其字幕插件



    步骤:
    ① 把所有需要修改的ass字幕文件,一次性或者分批次拖放到VSCode中;
    ② 检查“[V4+ Styles]”样式表,以及“\fn”字体覆盖代码中的字体名,将含有空格的字体名称先保护起来(替换成下划线“_”或者减号“-”)
    2025-09-28_203530.jpg

    2025-09-28_203721.jpg


    将以下3行,分别复制进替换窗口的第一行(开启通配符模式)
    1. ([\u4e00-\u9fa5]) ([\u4e00-\u9fa5])
    2. ([\u4e00-\u9fa5]) ([A-z])
    3. ([A-z]) ([\u4e00-\u9fa5])
    复制代码

    将下面一行复制进替换窗口的第二行
    1. $1 $2
    复制代码

    点击“全部替换”,对每个ASS文件分别替换三次
    2025-09-28_204558.jpg
    注意,每次替换,“全部替换”需要点到没有匹配项为止。

    还原之前被保护的字体名

    以上步骤可以替换掉绝大部分,根据经验,还会漏掉“「」”、“…”前后接中文或日文的情况,需要手动替换。

    我还遇到过使用两个英文半角空格(0x20)的组合进行分隔的字幕,虽然此方法的本意估计是希望留出和全角空格一样的空白分隔空间,但实际播放器渲染时,似乎依旧只留出一个英文半角空格(0x20)的空间。
    这种情况下可以直接把两个英文半角空格(0x20)全部替换为全角空格(0x3000),因为应该不会有字体的名称里以及ass格式定义的其他地方会用到连续的两个英文半角空格(0x20),即使是style名称,因为被全部同步替换掉了,所以也不会出问题。

    “[\u4e00-\u9fa5]”也是网上搜到的中文字符的通配符(日文应该也行),如果有更好的替换方法(更完善的通配符匹配方案,或者其他方便的方法),欢迎各位提出。

    回复

    使用道具 举报

  • TA的每日心情
    开心
    2025-5-25 15:43
  • 签到天数: 25 天

    [LV.4]偶尔看看III

    1

    主题

    58

    回帖

    0

    VC币

    中级会员

    Rank: 3Rank: 3

    积分
    12219
    洛雨璃 发表于 6 天前 | 显示全部楼层
    我一般更直接一点,在Aegisub里面把一个空格替换成两个空格就搞定了
    回复

    使用道具 举报

  • TA的每日心情
    开心
    2023-1-26 20:58
  • 签到天数: 77 天

    [LV.6]常住居民II

    16

    主题

    276

    回帖

    504

    VC币

    金牌会员

    Rank: 6Rank: 6

    积分
    45100
    StarRingChild 发表于 6 天前 | 显示全部楼层
    前段时间用 AI 写了个 PY 脚本,将 .ass 字幕中,所有 Style 名称包含 “JP” 的 Dialogue 行里,
    位于 {} 标签外的半角数字(0-9)替换为全角数字(0-9)。
    支持目录或文件列表批量处理,自动备份为 .bk。

    convert_fullwidth_bk.py.zip

    1.7 KB, 下载次数: 2

    评分

    参与人数 1活跃度 +6400 收起 理由
    ssh_0224 + 6400 赞一个!

    查看全部评分

    回复

    使用道具 举报

    您需要登录后才可以回帖 登录 | 立即注册

    本版积分规则

    快速回复 返回顶部 返回列表