我有一个PHP脚本,该脚本通过Twilio Webhook调用以接收传入的SMS。邮件中包含我捕获的帖子数据:
$Message = $_POST["Body"];
然后,使用Twilio PHP SDK,通过以下方式将该消息转发回手机:
$relay = new Client($sid, $token);
try {
$relay->messages->create(
'+15558675310',
array(
'from' => '+15555555555',
'body' => $Message
)
);
}
catch (Exception $e) {
$TwilioError = "Error: " . $e->getMessage();
}
足够简单并且可以正常工作。问题是表情符号翻译不正确,发出乱码。笑脸应该是这样:ðŸ〜€
Twilio日志将显示带有笑脸的传入消息,但这只是HTML表示。日志未显示编码是什么(假设UTF-8)。传出消息的Twilio日志说编码为UCS2。
Web服务器的默认编码为UTF-8。
在使用Twilio PHP SDK发回邮件之前,使用PHP 5.6需要做些什么,使消息从Twilio传入,内容中可能包含表情符号?
答案 0 :(得分:0)
已解决。我的问题的一部分是在$ _REQUEST ['Body']上调用stripslashes(),可能是出于习惯来帮助处理其他有害的post值。因此,它剥离了UTF-8表情符号字节。
一旦删除,我就可以发送表情符号。为了存储表情符号用于记录目的,利用下面@PetrHejda提供的实体功能可以正常工作。