php smpp 短信发送中的 UTF 8 编码消息损坏字符

UTF8 Encoded messages broken charecter on php smpp sms sending

您好,我正在使用 php smpp 短信发送包来处理套接字短信发送。

$transport = new SocketTransport(array(config('app.smppHost')), config('app.smppPort'));
            $transport->setRecvTimeout(10000);
            $smpp = new SmppClient($transport);

我发送 $encodedMessage = GsmEncoder::utf8_to_gsm0338($message);

$smpp->sendSMS($from,$to,$encodedMessage,null,null);

更新
但是收到的短信有问题 character.I 我正在用我的语言发送并且也按照建议尝试了

$smpp->sendSMS($from,$to,$encodedMessage,null,null);

但是现在一半坏一半正常的消息正在发送。我认为需要一些编码 ???

这是一个特殊的语言编码问题,您需要覆盖 smpp 包中的编码版本以及对文本本身进行编码。

首先转换字符串

mb_convert_encoding($message,'UCS-2',"utf8");

然后以类型 8 编码发送短信。它应该可以正常工作

$smpp->sendSMS($from,$to,$encodedMessage,null,8);