uni-app 使用sendSms短信服务收到的短信中部分中文变成“?”
uni-app 使用sendSms短信服务收到的短信中部分中文变成“?”
产品分类:
uniCloud/腾讯云
示例代码:
模板为:
【】订单 ${_id} 租客:${name} 电话 ${mobile} ⽤⻋时间(取还⻋时间)${time} 租期 ${duration} 位置 取:${submit_address} 还:${back_address} ⻋型 ${type} ⾦额 ${price} 元 状态 ${status}
请求为:
try {
let res = await uniCloud.sendSms({
appid: '',
smsKey: '',
smsSecret: '',
phone: '',
templateId: '13198',
data: {
_id: _id,
name: cancel_user.data[0].realname_auth.real_name,
mobile: cancel_user.data[0].mobile,
time: get_order.data[0].submit_time + '至' + get_order.data[0].back_time,
duration: get_order.data[0].duration,
submit_address: get_order.data[0].submit_address,
back_address: get_order.data[0].back_address,
type: cancel_car.data[0].brand + cancel_car.data[0].type,
price: get_order.data[0].total_fee,
status: '已取消'
}
})
} catch (err) {
// 调用失败
console.log(err.errCode)
console.log(err.errMsg)
return {
code: err.errCode,
msg: err.errMsg
}
}
操作步骤:
发送短信有时候会变,有时候不会变
预期结果:
短信内容的中文正常显示
实际结果:
收到的短信中部分中文变成“?”
bug描述:
使用sendSms短信服务收到的短信中部分中文变成“?”,且这个中文不是短信中的变量而是模板中的文字。

更多关于uni-app 使用sendSms短信服务收到的短信中部分中文变成“?”的实战教程也可以访问 https://www.itying.com/category-93-b0.html
看这情况应该是跟你上传的参数的格式有关,我这边联系下运营商查下具体原因
更多关于uni-app 使用sendSms短信服务收到的短信中部分中文变成“?”的实战教程也可以访问 https://www.itying.com/category-93-b0.html
原因是您模板里面的’车‘和’金‘两个字的格式有问题,您仔细跟其它字对比下就能看出区别,现已帮您重新编辑了下模板,应该没这个问题了,有空可以再测试下!
【】订单 ${_id} 租客:${name} 电话 ${mobile} ⽤⻋(车)时间(取还⻋(车)时间)${time} 租期 ${duration} 位置 取:${submit_address} 还:${back_address} ⻋(车)型 ${type} ⾦(金)额 ${price} 元 状态 ${status}
这样对比下更直观点,模板中的字体带了特殊格式的话很容易出现识别不了的问题!
好的,十分感谢
这个问题通常是由于短信编码问题导致的。在短信发送中,中文字符需要使用正确的编码格式才能正常显示。
主要原因:
- 短信服务商对中文字符的支持问题
- 编码格式不匹配,特别是当短信内容包含中英文混合时
解决方案:
-
检查短信模板编码:
- 确保在腾讯云短信控制台中,模板内容使用的是UTF-8编码
- 模板中的中文符号建议使用全角字符
-
修改模板内容: 将模板中的特殊符号替换为标准字符:
【】订单 ${_id} 租客:${name} 电话 ${mobile} 用车时间(取还车时间)${time} 租期 ${duration} 位置 取:${submit_address} 还:${back_address} 车型 ${type} 金额 ${price} 元 状态 ${status}

