You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

使用discord.py:如何修复Discord Embed的字符串宽度格式化问题?

解决Discord Embed中字符串宽度错乱的问题

问题根源在于:控制台使用等宽字体,每个字符(包括空格)宽度一致,但Discord Embed默认采用非等宽字体,普通空格的宽度远小于字母/符号,导致手动补的空格无法实现预期对齐效果。以下是两种无需代码框的修复方案:

方案一:使用Markdown表格(推荐,美观稳定)

利用Discord支持的Markdown表格特性,自动实现列对齐,无需手动处理空格。修改代码如下:

if in_database:
    searched_strings: list[str] = ["PLACEHOLDER_MONDAY", "PLACEHOLDER_TUESDAY", "PLACEHOLDER_WEDNESDAY",
                                   "PLACEHOLDER_THURSDAY", "PLACEHOLDER_FRIDAY", "PLACEHOLDER_SATURDAY",
                                   "PLACEHOLDER_SUNDAY"]
    days: list[str] = await translate_m(interaction.guild_id, searched_strings)
    # 构建表格结构
    work_hours = "| 工作日 | 工时 |\n|--------|------|\n"
    for row in in_database:
        day_name = days[row[0] - 1]
        work_hours += f"| **{day_name}** | `{row[1]}` |\n"

    print(work_hours)
    translations[2] = translations[2].replace("[work_hours]", work_hours)

embed: Embed = Embed(description="\n".join(translations[:-1]), color=0xEA2027)
await channel.send(embed=embed)

表格会自动让两列对齐,视觉整洁且对齐效果可靠。

方案二:用全角空格替换普通空格填充

全角空格(Unicode编码\u3000)在Discord的非等宽字体中宽度统一,效果接近等宽字体的空格。修改代码中的填充逻辑:

if in_database:
    searched_strings: list[str] = ["PLACEHOLDER_MONDAY", "PLACEHOLDER_TUESDAY", "PLACEHOLDER_WEDNESDAY",
                                   "PLACEHOLDER_THURSDAY", "PLACEHOLDER_FRIDAY", "PLACEHOLDER_SATURDAY",
                                   "PLACEHOLDER_SUNDAY"]
    days: list[str] = await translate_m(interaction.guild_id, searched_strings)
    for row in in_database:
        day: str = f"- **{days[row[0] - 1]}**:"
        # 计算需要填充的全角空格数,替换普通空格
        fill_count = 50 - len(day)
        if fill_count > 0:
            day += "\u3000" * fill_count
        work_hours += day + f"`{row[1]}`\n"

    print(work_hours)
    translations[2] = translations[2].replace("[work_hours]", work_hours)

embed: Embed = Embed(description="\n".join(translations[:-1]), color=0xEA2027)
await channel.send(embed=embed)

注意:不同语言字符的宽度可能存在差异(比如中文和英文),填充数量可能需要根据实际显示效果微调。

内容的提问来源于stack exchange,提问作者Razzer

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.06.17 17:05:55