javascript - 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);
},
};
``
解决方案
推荐阅读
- asp.net - 为什么检查会话变量中的空引用会导致 ArgumentOutOfRangeException?
- vue.js - 从 apollo 缓存读取查询,查询尚不存在,但所有信息都已存储在缓存中
- r - R:从 4 个向量运行循环以输出 4 个数据表
- google-chrome-devtools - 在评估 HTMLCollection 时,为什么 Chrome DevTools 不显示 item 和 namedItem 方法?
- python - 创建一个函数以根据 Pandas 数据框中的列和标签执行分组和排序
- java - 我怎样才能让列表(搜索)告诉我它是否在另一个列表(主)中?
- php - Eloquent:如何从 ::with() 结果中获取“WhereNotNull”
- javascript - 给定一个索引位置,如何拆分该位置所在的句子?
- php - 多态关系不起作用
- vue.js - 使用 vuejs 方法创建类别过滤器