1

シリアルポートを介してSIEMENSTC65GSMモデムと通信するCアプリケーションをプログラミングしています。SMSメッセージを正しく送信できますが、デフォルトのGSM03.38文字セットの範囲外の文字を送信したいと思います。

参照してください:http ://www.csoft.co.uk/sms/character_sets/gsm.htm

たとえば、文字を送信しようとすると[、このページには、ESC文字の後に。を使用する必要があることが示されます<。問題は、モデムがESC文字を解釈してメッセージの送信を中止し、メッセージの内容全体を読み取っていないことです。

「拡張」GSM03.38文字セットにあるこれらの文字を送信するのを手伝ってくれる人はいますか?

よろしく

4

1 に答える 1

1

リンクの表に間違った文字がいくつかあります。GSM については 3GPP から元の仕様をダウンロードし、最新の UICC についてはこちらをダウンロードすることをお勧めします。UICC 仕様には、ユーロ記号が含まれています。

拡張テーブルにアクセスするには、次のようにエスケープ コントロールを追加する必要があり0x1Bます。

 ^ : 0x1B 0x14
 { : 0x1B 0x28
 } : 0x1B 0x29
 \ : 0x1B 0x2F
 [ : 0x1B 0x3C
 ~ : 0x1B 0x3D
 ] : 0x1B 0x3E
 | : 0x1B 0x40
 € : 0x1B 0x65
 page break : 0x1B 0x0A

使用例:

// [Hello]
byte[] text = new byte[] {0x1B, 0x3C, 'H', 'e', 'l', 'l', 'o', 0x1B, 0x3E};

ノート:

  1. 0 ~ 9、AZ、az、スペース (その他の文字) の ASCII コードは、GSM のデフォルトのアルファベットと同様です。残りは表をご覧ください
  2. ハンドセット/携帯電話が拡張テーブル文字をサポートしていない場合、デフォルトのテーブル文字に従って表示されます (たとえば、ユーロは小文字の「e」として表示されます)。
  3. アラビア語または中国語を使用している場合、GSM デフォルト アルファベットとその拡張テーブルは使用できません。代わりに、Unicode Character Set 2 (UCS-2) を使用してください。
于 2013-05-29T17:38:49.170 に答える