fix(stage-ui) patch ModelSettings.validateFiles to support utf-8 (#814)

This commit is contained in:
Rin
2025-12-17 21:10:24 +08:00
committed by GitHub
parent f8fdc2e6f9
commit e80a82d921
@@ -2,7 +2,23 @@ import type { ModelSettings } from 'pixi-live2d-display/cubism4'
import JSZip from 'jszip'
import { Cubism4ModelSettings, ZipLoader } from 'pixi-live2d-display/cubism4'
import { Cubism4ModelSettings, ModelSettings as ModelSettingsClass, ZipLoader } from 'pixi-live2d-display/cubism4'
// TODO: this is a bit hacky, do we have other choice?
// NOTICE: Patch to handle UTF-8 encoded file paths in model settings
const originalValidateFiles = ModelSettingsClass.prototype.validateFiles
ModelSettingsClass.prototype.validateFiles = function (files: string[]): string[] {
const normalizedFiles = files.map((f) => {
try {
return decodeURI(f)
}
catch {
// Not a valid URI, return original string.
return f
}
})
return originalValidateFiles.call(this, normalizedFiles)
}
ZipLoader.zipReader = (data: Blob, _url: string) => JSZip.loadAsync(data)