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...

猜你喜欢

解决cloudflare cdn启用https回源协议

解决cloudflare cdn启用https回源协议

这平时使用阿里、百度、腾讯的CDN,都有明显的一个选项设置HTTP或HTTPS回源协议。 但初次了解cloudflare的时候,cloudflare的操作逻辑习惯与方式明显与以前不同。 cloudf...

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

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

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

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

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

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

升级bios 解决Dell R720 v2cpu点不亮

升级bios 解决Dell R720 v2cpu点不亮

有一台原装的是E5-2620cpu的R720服务器,这次在某宝上买了两E5-2673v2的U来替换。 谁知开机显示器没反应,鼠标键盘无反应。 开始怀疑是不是CPU的问题,后来一想,记得有部分R720...