3

Java で SMPP プロトコルを使用しているときに、フラッシュ メッセージをアラビア語で送信する際に問題に直面しています。標準の英語形式での送信には成功していますが、アラビア語の Unicode を使用すると、メッセージが不明な形式で配信されます。

以下は、私が使用している関連するサンプル リクエストです。

byte protocolId = 0x00;
byte dataCoding = (byte) 0xf0; //(for flash message)
byte smsClass = 0x00;
request.setShortMessage("\u0628", Data.ENC_UTF8);

ログの SMPP 要求は、要求の送信中に正しいアラビア語のアルファベットを示していますが、ユーザー側ではアルファベットが判読できない形式になっています。リクエストの残りの設定はデフォルトとして設定されています。目標を達成するための提案をいただければ幸いです。前もって感謝します。

4

2 に答える 2

3

DCS を 0x18 に設定する必要があります。

フラッシュ メッセージを処理するメッセージ クラス パラメータへのアクセスを許可するエンコード方法は 2 つあります。

詳細については、 http://www.etsi.org/deliver/etsi_ts/100900_100999/100900/07.02.00_60/ts_100900v070200p.pdfセクション 4 を参照してください。

値 0xf0 は、dc をエンコードする 2 番目の方法を示し、メッセージ クラスを 0 に設定します。これはフラッシュですが、アルファベットもデフォルトに設定されています。ちなみに、この方法はUCS2ではありません。

もう一方の方法では、より適切に制御できます。上位 16 進ニブルは 1 に設定されています。これは、下位 16 進ニブルにメッセージ クラスに関する情報が含まれていることを意味します。下位の 16 進ニブルは、UC2 が使用され、メッセージ クラスが 0 に設定されていることを示します。

于 2013-03-17T11:45:20.490 に答える