0

メッセージのフィールド区切り文字として「1C」(16進数)を使用する必要があります。しかし、手動でメッセージに1Cを入れて、UltraEditで最終メッセージの16進出力を表示すると、代わりに31 63が表示されます。つまり、1とCの16進数に相当します。16進出力でも1Cのままであることを確認するにはどうすればよいですか。 ?メッセージに入れることができるASCIIに相当するものはありません。

私が持っているサンプルリクエストメッセージを開くと、「。」だけが表示されます。(ドット)ASCII文字列とUltraEditの16進ダンプの1C、そしてそれが私が望んでいることです。実際、Notepad ++はそれを「FS」としても表示しますが、私のメッセージには1Cしか表示されません。

ありがとう。

4

3 に答える 3

1

'\u001c'文字定数として書き込むか"…\u001c…"、文字列リテラルに含めることにより、値が1Cの文字を取得します。

于 2012-07-09T14:11:51.033 に答える
1

メッセージをどのように保存しますか?以下は問題なく動作します。

String message = "some\u001ctext\n";
for (byte b : message.getBytes("ISO-8859-1")) {
    System.out.println(b);
}

PrintWriter writer = new PrintWriter("message.txt", "ISO-8859-1");
writer.append(message);
writer.close();

(コメントに従って更新)

于 2012-07-09T14:19:01.980 に答える
1

この表記を使ってみませんか?

public static final byte FIELD_SEPARATOR   = 0x1C;
于 2016-03-17T20:33:16.333 に答える