使用PHP使用Emojis转发Twilio SMS

时间:2018-12-19 17:26:59

标签: php twilio twilio-php

我有一个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传入,内容中可能包含表情符号?

1 个答案:

答案 0 :(得分:0)

已解决。我的问题的一部分是在$ _REQUEST ['Body']上调用stripslashes(),可能是出于习惯来帮助处理其他有害的post值。因此,它剥离了UTF-8表情符号字节。

一旦删除,我就可以发送表情符号。为了存储表情符号用于记录目的,利用下面@PetrHejda提供的实体功能可以正常工作。

htmlentites not working for emoji