alphaTab.js在播放gp5格式曲谱乱码的解决

alphaTab.js是一个用来实现在网页播放guitar pro曲谱的js框架,能够兼容甩有gp格式的在线播放,但是alphaTab.js在播放一年老曲谱的时候会出现汉字乱码。

这里的原因就是这个老曲谱比如gp3、gp4、gp5所在的年代,在使用编码基本上都是gbk编码。

而现在主流已经是utf-8了,所以alphaTab.js会默认使用utf-8来打开gp5曲谱,中文就乱码了。

alphaTab.js的核心代码库中,类ImporterSettings的构造中有一个this.encoding = 'utf-8';就是关键所在,直接修改为gbk就解决汉字乱码了。

但可能会导致新版的gp谱乱码,因为新版已经采用utf-8了,汉字也一样。

所以需要使用一个兼容的方式,不能把this.encoding写死。

通过代码的分析,可以在构建一个alphaTab.js播放器的时候,显示地修改ImporterSettings的encoding。

再加一个判断,如果是gp5再换编码,不然就用默认。

    const api = new alphaTab.AlphaTabApi(main, settings);
#以下判断是新加,如果是gp5换成gbk编码
    if(url.indexOf('gp5') > 0){
        api.settings.importer.encoding = 'gbk';
    }
最终效果正常兼容了gp5的汉字,其它gp4 gp3类推。


相关推荐

alphaTab.js在播放gp5格式曲谱乱码的解决

alphaTab.js在播放gp5格式曲谱乱码的解决

alphaTab.js是一个用来实现在网页播放guitar pro曲谱的js框架,能够兼容甩有gp格式的在线播放,但是alphaTab.js在播放一年老曲谱的时候会出现汉字乱码。 这里的原因就是这个...

解决向vim粘贴代码出现汉字乱码的问题

解决向vim粘贴代码出现汉字乱码的问题

方法分为永久解决方法和临时解决方法 1、临时解决方法 检查:在vim编辑器上 :set enc #得到 encoding=latin1 处理:在vim编辑器上 :set encoding=utf-8...

猜你喜欢

设置xshell断开自动重连的方法

设置xshell断开自动重连的方法

有时候xshell挂机做一些任务,由于网络不稳定,尤其是我们这种家用宽带时不是跳一下公网IP导致连接异常,xshell经常没过多久就断开了,麻烦的很。 关于这个问题首先问了一个AI, AI一本正经胡...

alphaTab.js在播放gp5格式曲谱乱码的解决

alphaTab.js在播放gp5格式曲谱乱码的解决

alphaTab.js是一个用来实现在网页播放guitar pro曲谱的js框架,能够兼容甩有gp格式的在线播放,但是alphaTab.js在播放一年老曲谱的时候会出现汉字乱码。 这里的原因就是这个...

解决autodl的GPU服务器Ubuntu vim中文乱码

解决autodl的GPU服务器Ubuntu vim中文乱码

为了微调chatbml3 6b,租了台3090的服务器,而且直接使用的社区镜像。 本次出现汉字乱码的系统版本如下 cat /proc/version Linux version 5.15.0-57-...

2023年3月亲测,恢复Google和360浏览器的翻译功能

2023年3月亲测,恢复Google和360浏览器的翻译功能

如图:已成功在360浏览器把github首页翻译成了中文 可能很多人已经掌握了这个技巧,但这个问题却困扰了我很久,直到下决心找资料解决这个翻译问题。只是想不到的时候,解决方案确实如此简单,也不是很麻...