openutau 中文文档 下载 App

UTF-8 文件名乱码修复|日文声库 Shift-JIS 编码问题

什么情况会乱码

典型场景:

  1. 日文 Windows 系统的用户,用日文版 7-Zip / WinRAR 打包了一个声库 zip
  2. 这个 zip 里的文件名(不是文件内容)是 Shift-JIS 编码
  3. 你在中文 Windows 上解压这个 zip → 解压软件默认用 UTF-8 解读 → 文件名变成乱码(、ああ 这种)
  4. OpenUtau 看到乱码的文件名,找不到对应音频 → 声库无法使用

优先方案:用 Install Singer 工具

OpenUtau 的 Tools → Install Singer... 内置了编码识别——它会在解压前让你选文件编码:

选 Shift-JIS 后,OpenUtau 会用 Shift-JIS 正确解读 zip 里的文件名 → 解压出正确的日文假名文件名(あ か い 这种)。

这是首选方案——大多数编码乱码问题在这里就能解决。

次方案:正确解压

如果你已经手动解压出了乱码文件夹,试试:

方法一:用 7-Zip 指定编码解压

  1. 下载 7-Zip(开源免费)
  2. 在 7-Zip 里打开那个乱码 zip
  3. 菜单:工具 → 选项 → 压缩 → 字符集 → 选 Shift-JIS (CP932)
  4. 重新解压

方法二:用 Bandizip 指定编码

Bandizip 解压时可以选"自动选择或指定编码"——选 Shift-JIS 解压。

方法三:用 Python 脚本批量修复

如果你不想重解压,已经解压出的乱码文件名可以用 Python 批量还原:

# 把乱码字符串当作 latin1 解出来,再用 shift_jis 编码回去
import os
folder = r"C:\path\to\乱码文件夹"
for name in os.listdir(folder):
    try:
        fixed = name.encode("latin1").decode("shift_jis")
        os.rename(os.path.join(folder, name), os.path.join(folder, fixed))
    except Exception as e:
        print(f"跳过: {name} ({e})")

声库内部文件 vs 声库名字

乱码问题发生在两个层面:

层面一:声库文件夹名

如果你 Additional Singer Path 指向的目录里,声库文件夹名字是乱码(、ああ),OpenUtau 的 Singer 下拉里这个声库也会显示乱码名。这时候用上述方法修好文件夹名即可。

层面二:声库内部音频文件名

声库内部的 WAV 文件名乱码更麻烦——因为 oto.ini 里写的是原始正确文件名(あ.wav),但磁盘上是乱码文件名(、ああ.wav)。OpenUtau 按 oto.ini 里的名字找文件,找不到就出红色标记。

修复:

  1. 用上述 Python 脚本把整个声库目录里所有文件名批量从乱码还原
  2. 还原后再用 OpenUtau Install Singer 或 Additional Path 扫一遍

macOS 上下载声库的特殊注意事项

macOS Safari 默认会"解压后清理 zip"——如果自动解压的文件名已经是乱码,原始 zip 可能被 Safari 删了。

建议:

  1. 先在 Safari 偏好设置里关掉 "Open 'safe' files after downloading"
  2. 下载后 zip 保持原样,手动用 7-Zip / Bandizip 指定编码解压
  3. 或直接把 zip 拖进 OpenUtau(Install Singer 工具自带编码选择)

总结

情况解决方案
还没解压 zipOpenUtau → Install Singer → 选对编码(Shift-JIS)
已经解压了但文件名乱码Python 脚本或 7-Zip 指定编码重解压
macOS 下载后自动解压乱码Safari 关掉自动解压 + 手动用 7-Zip 处理
oto.ini 内部 alias 乱码大概率声库本身就是坏的,找声库作者要正确编码的版本