私は 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
どんな助けでも大歓迎です