discord-api-docs icon indicating copy to clipboard operation
discord-api-docs copied to clipboard

Wrong encoding in file preview message with Buffer

Open viruspowaa opened this issue 2 months ago • 3 comments

Description

Hello,

I try to send file from Buffer, but I have an issue with encoding. My file content is encode in 'utf-8' but Discord message preview is not. When Discord unfurls the attachment as a preview, it looks like it's content sniffing. In this case, it appears to be text/plain; charset=ISO-8859-1.

bot.ts

import { AttachmentBuilder, Client, Events, GatewayIntentBits, TextChannel } from "discord.js";
import { Buffer } from "node:buffer";

const client = new Client({
  intents: [GatewayIntentBits.Guilds, GatewayIntentBits.GuildMessages],
});

client.once(Events.ClientReady, () => {
  // 🤖 Discord bot is ready! 🤖
});

client.on(Events.GuildAvailable, async (guild) => {
  const bufTest = Buffer.from("Récapitulatif", "utf-8");
  console.log("bufTest :>> ", bufTest);
  console.log("bufTest value :>> ", bufTest.toString());
  const channel = guild.channels.cache.get("<<CHANNEL_ID>>") as TextChannel;
  const bTst = new AttachmentBuilder(bufTest, {
    name: "tst.log",
    description: "Test",
  });
  channel.send({ content: "test 2", files: [bTst] });
});

client.login("<<TOKEN>>");

Console result

bufTest :>>  <Buffer 52 c3 a9 63 61 70 69 74 75 6c 61 74 69 66>
bufTest value :>>  Récapitulatif

Discord result

image

Steps to Reproduce

Run code of 'bot.ts' previously write

Expected Behavior

I want that Discord show the file in the good encoding

Current Behavior

Wrong encoding in preview

Screenshots/Videos

image

Client and System Information

Versions

"discord.js": "^14.12.1", "dotenv": "^16.4.5", "@types/node": "^20.11.20", "tsup": "^8.0.2", "tsx": "^4.7.1", "typescript": "^5.3.3"

gateway intents

Guilds, GuildMessages

viruspowaa avatar Apr 26 '24 10:04 viruspowaa