首页 > 解决方案 > DiscordJS:文本编码问题

问题描述

我按照 DiscordJS 文档来玩画布,但遇到了一个我无法解决的问题。

有问题的问题在于文本的字符编码,带有“꧁”之类字母的人破坏了画布的文本,使它们显示为有故障的字符。我一直在做自己的研究并试图将文本强制为 UTF -8 并使用一个名为 fancy-text-converter 的插件。

但是,我唯一实现的是在强制 UTF8 的情况下,糖化字符已针对不同的字符进行了更改,而在 Fancy Text 的情况下,文本已更改了一个数字(我不知道它在哪里来自)

我的代码目前如下

var Canvas = require('canvas');
const utf8 = require('utf8');
ftc = require('fancy-text-converter');
module.exports = {
    name: 'canvas',
    description: 'Draw a picture with text',
    aliases: ['Canvas', 'paint'],
    async execute(message, args) {
        var user = message.author.username;
        var userISO = utf8.encode(user);
        const canvas = Canvas.createCanvas(736, 736);
        const ctx = canvas.getContext('2d');
        const avatar = await Canvas.loadImage(message.author.avatarURL({ format: "png"}));
        ctx.drawImage(avatar, 0,0, canvas.width, canvas.height);
        ctx.font = '150px Arial Unicode MS'
        ctx.fillStyle = '#F549BC'
        ctx.fillText(userISO, 10,700);
        const attachment = new Discord.MessageAttachment(canvas.toBuffer());
        message.channel.send(attachment);
    },
};
``

标签: javascriptcanvastextdiscorddiscord.js

解决方案


推荐阅读