1

我在 Delphi 2010 中使用了 SMSCRelay ActiveX 组件,当我发送消息时出现的问题包括一些字符,例如 (@^_) 我收到带有问号而不是这些字符的消息。

我的代码和危险的解决方案:(

if  MessageIsArabic  then
              MsgEncoding :=  etUCS2Text
                else
              MsgEncoding :=  et7bitText;


MessageSendResult := FSMPPConnection.SubmitMessageEx(Mobile,1,1,SenderOrigTon,OrigNpi,Msg,MsgEncoding,FPartUDH,m_ReqReport,now,now+1,'','',ProtID,OutMessageID );

我的旧解决方案是检查消息是否包含这些字符集编码到 etUCS2Text 但我发现提供者报告和我们的报告之间的区别在于计数。

 if  MessageArabic  then
              MsgEncoding :=  etUCS2Text
              else
                begin 
                  MsgEncoding :=  et7bitText ;
                  if pos('@',FInMessage.OutMessage)>0 then MsgEncoding := etUCS2Text ;
                  if pos('#',FInMessage.OutMessage)>0 then MsgEncoding := etUCS2Text ;
                  if pos('^',FInMessage.OutMessage)>0 then MsgEncoding := etUCS2Text ;
                  if pos('_',FInMessage.OutMessage)>0 then MsgEncoding := etUCS2Text ;
                end;

包含这些字符时英文消息中的问题

组件中可用的编码

et7bitText
et8bitHexadecimal
etUCS2Text
etISO88591
etISO88595
etISO88598
etASCIIText
etWAPPushOrMMS

请任何帮助将不胜感激

4

0 回答 0