検索

310.2. データコーディング、アルファベットおよび国際文字セット

download PDF

データコーディングとアルファベットは、メッセージごとに指定できます。エンドポイントにはデフォルト値を指定できます。これらのオプションの関係と、複数の値が設定されている場合のコンポーネントの動作を理解することが重要です。

データコーディングは、SMPP ワイヤフォーマットの 8 ビットフィールドです。

アルファベットは、データコーディングフィールドのビット 0 ~ 3 に対応します。一部のタイプのメッセージでは、(データコーディングフィールドのビット 5 を設定することによって) メッセージクラスが使用され、データコーディングフィールドの下位 2 ビットはアルファベットとして解釈されず、ビット 2 と 3 のみがアルファベットに影響します。

さらに、現在のバージョンの JSMPP ライブラリーは、ビット 0 と 1 がメッセージクラスに使用されると仮定すると、ビット 2 と 3 のみをサポートしているようです。これが、JSMPP の Alphabet クラスが、ISO-8859-1 を示す値 3 (バイナリー 0011) をサポートしていない理由です。

JSMPP はメッセージクラスパラメーターの表現を提供しますが、Camel コンポーネントは現在、データコーディングフィールドの対応するビットを手動で設定する以外に、それを設定する方法を提供していません。

送信メッセージでデータコーディングフィールドを設定する場合、Camel コンポーネントは次の値を考慮し、最初に見つかった値を使用します。

  • ヘッダーで指定されたデータコーディング
  • ヘッダーで指定されたアルファベット
  • エンドポイント設定で指定されたデータコーディング (URI パラメーター)

Camel の古いバージョンには、国際文字セットのサポートにバグがありました。この機能は、すべてのメッセージに単一のエンコーディングが使用されている場合にのみ機能し、ユーザーがメッセージごとにエンコーディングを変更したい場合は面倒でした。これを機能させる必要があるユーザーは、Camel のバージョンに次の修正が含まれていることを確認する必要があります。

JIRA Issues Macro: com.atlassian.sal.api.net.ResponseStatusException: Unexpected response received.ステータスコード: 404

をクリックします。

Camel コンポーネントは、データコーディング値を SMSC に送信しようとするだけでなく、メッセージボディーを分析し、それを Java 文字列 (Unicode) に変換し、それを対応するアルファベットのバイト配列に変換しようとします。バイト配列でどのアルファベットを使用するか決定する際、Camel SMPP コンポーネントはデータコーディング値 (ヘッダーまたは設定) を考慮せず、(ヘッダーまたはエンドポイントパラメーターのいずれかから) 指定されたアルファベットのみを考慮します。

String 内の一部の文字が選択したアルファベットで表現できない場合は、疑問符 (?) 記号に置き換えることができます。API のユーザーは、メッセージ本文をコンポーネントに渡す前に ISO-8859-1 に変換できるかどうかを確認し、変換できない場合はアルファベットヘッダーを設定して UCS-2 エンコーディングをリクエストすることを検討することを推奨します。アルファベットとデータコーディングオプションがまったく指定されていない場合、コンポーネントは必要なエンコーディングを検出し、データコーディングを設定しようとする場合があります。

アルファベットコードのリストは、SMPP 仕様 v3.4 のセクション 5.2.19 で指定されています。SMPP 仕様の注目すべき制限の 1 つは、GSM 3.38 (7 ビット) 文字セットの使用を明示的に要求するためのアルファベットコードがないことです。アルファベットに値 0 を選択すると、SMSC の デフォルト のアルファベットが選択されます。これは通常、GSM 3.38 を意味しますが、保証されていません。SMPP ゲートウェイの Nexmo では、コントロールパネルオプションを使用して、デフォルトを他の文字セットにマッピングできます。SMSC オペレータに問い合わせて、デフォルトとして使用されている文字セットを正確に確認することを推奨します。

Red Hat logoGithubRedditYoutubeTwitter

詳細情報

試用、購入および販売

コミュニティー

Red Hat ドキュメントについて

Red Hat をお使いのお客様が、信頼できるコンテンツが含まれている製品やサービスを活用することで、イノベーションを行い、目標を達成できるようにします。

多様性を受け入れるオープンソースの強化

Red Hat では、コード、ドキュメント、Web プロパティーにおける配慮に欠ける用語の置き換えに取り組んでいます。このような変更は、段階的に実施される予定です。詳細情報: Red Hat ブログ.

会社概要

Red Hat は、企業がコアとなるデータセンターからネットワークエッジに至るまで、各種プラットフォームや環境全体で作業を簡素化できるように、強化されたソリューションを提供しています。

© 2024 Red Hat, Inc.