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

使用AWS SNS发送含特殊字符SMS时字符偶被替换为点的问题咨询

AWS SNS 短信特殊字符异常问题解答
  • 这种情况不正常,属于字符编码或SNS短信通道的兼容性问题。
  • 问题根源:SNS短信默认使用GSM-7单字节编码,仅支持128个基础字符,Œ这类特殊字符不在其字符集内。当SNS尝试用GSM-7发送非兼容字符时,会自动将其替换为.;但如果短信内容包含足够多的非GSM-7字符,SNS会自动切换到UCS-2双字节编码,此时特殊字符就能正常显示,这就是结果不稳定的原因。
  • 解决配置方案:
    • 强制指定UCS-2编码:调用SNS的publish接口时,通过MessageAttributes明确设置编码类型。示例代码:
      const AWS = require('aws-sdk');
      const sns = new AWS.SNS();
      
      const publishParams = {
        Message: '<Œufs>',
        PhoneNumber: '+目标手机号',
        MessageAttributes: {
          'AWS.SNS.MobileSMS': {
            DataType: 'String',
            StringValue: '{"SMSType":"Transactional", "Encoding":"UCS-2"}'
          }
        }
      };
      
      sns.publish(publishParams, (err, result) => {
        err ? console.error(err) : console.log(result);
      });
      
    • 提前字符校验(可选):如果想保留GSM-7的传输效率,可以提前校验短信内容,将非GSM-7字符替换为兼容替代字符,或提前判断是否需要切换编码。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.24 07:36:23