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

如何在使用Facebook Send API发Messenger消息时实现多语言文本对齐

解决方案

你遇到的对齐异常是因为Messenger自动文本方向检测在混合不同书写方向的多行文本时会判断错误,只需给每行文本加上对应的Unicode方向控制字符即可强制指定对齐方向,无需修改原有发送函数。

需要用到的控制字符:

  • \u202B (RLE, Right-to-Left Embedding):强制后续文本按右到左对齐
  • \u202A (LRE, Left-to-Right Embedding):强制后续文本按左到右对齐
  • \u202C (PDF, Pop Directional Formatting):结束当前方向控制,避免影响后续文本

修改后的调用代码

const psid = "<Page scoped id for the target user>";

const message = [
    "\u202B- المرجو اختيار اللغة.\u202C",
    "\u202A- Please choose a language.\u202C",
    "\u202A- Veuillez choisir une langue.\u202C",
].join("\n");

void sendTextMessage(message, psid);

批量处理方案(可选)

如果频繁需要混合发送RTL和LTR文本,可以写个工具函数自动添加控制符:

/**
 * 给文本自动添加对应方向控制符
 * @param text 原始文本
 * @param isRtl 是否是右到左书写的语言
 */
function wrapDirection(text: string, isRtl: boolean): string {
    if (isRtl) {
        return `\u202B${text}\u202C`;
    }
    return `\u202A${text}\u202C`;
}

// 调用示例
const message = [
    wrapDirection("- المرجو اختيار اللغة.", true),
    wrapDirection("- Please choose a language.", false),
    wrapDirection("- Veuillez choisir une langue.", false),
].join("\n");

该方案完全兼容Facebook Messenger Send API的文本消息渲染规则,不会出现格式错乱问题。


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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.06 10:54:03