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