-2

以下の値の Java String があります。

文字列を印刷すると、以下に印刷されます。

コンテントタイプ: アプリケーション/ISUP; バージョン=ttc93-トラ; ベース=ttc93+

^A^C^B ^G^C^P^P^B^X^BP ^G^C^Q^P^B^Y^CPe^E\236^B--一意の境界-1

この文字列をCコードで渡し、Cコードがこの文字列を文字ポインタに格納した後、印刷しています

コンテントタイプ: アプリケーション/ISUP; バージョン=ttc93-トラ; ベース=ttc93+

つまり、区の文字の後に ^A を取得していません。

私がキャラクターを超えていない理由...一部のキャップ^がサポートされていません..そのようなもの..

4

1 に答える 1

4

^A私にはバイナリデータのように見えます。Java では、Java が文字と文字列の長さを格納するため、文字列に任意の文字 (0 バイトも含む) を含めることができます。C では、最初の 0 バイトで文字列が終了します。

理論を検証するには、たとえばStringEscapeUtilscommons-lang を使用するか、独自の小さなルーチンを作成するなどして、バイナリ データをエスケープしながら文字列を出力してみてください。

于 2013-11-13T10:19:17.777 に答える