2

Rebol を使用してバイナリ出力を生成していますが、出力が期待したものではありません。これは、0 から 255 までのすべてのバイトを出力する単純なテスト スクリプトです。

REBOL[]
for i 0 255 1 [
  prin to char! i
]

次のようにテストを実行します。rebol -q test.rebol | hexdump -v

Rebol 2.7 では、出力に 00 バイトがありませんが、他のすべてのバイトは問題ありません。

0000000 01 02 03 04 05 06 07 08 09 0a 0b 0c 0d 0e 0f 10
0000010 11 12 13 14 15 16 17 18 19 1a 1b 1c 1d 1e 1f 20
...
00000e0 e1 e2 e3 e4 e5 e6 e7 e8 e9 ea eb ec ed ee ef f0
00000f0 f1 f2 f3 f4 f5 f6 f7 f8 f9 fa fb fc fd fe ff
00000ff

Rebol 3 ( r3-g25033f8 ) では、最初の 128 バイトは問題ありませんが、残りはすべて変更されています。Rebol3 は出力を UTF-8 として扱うようです。

0000000 00 01 02 03 04 05 06 07 08 09 0a 0b 0c 0d 0e 0f
0000010 10 11 12 13 14 15 16 17 18 19 1a 1b 1c 1d 1e 1f
...
0000060 60 61 62 63 64 65 66 67 68 69 6a 6b 6c 6d 6e 6f
0000070 70 71 72 73 74 75 76 77 78 79 7a 7b 7c 7d 7e 7f
0000080 c2 80 c2 81 c2 82 c2 83 c2 84 c2 85 c2 86 c2 87
0000090 c2 88 c2 89 c2 8a c2 8b c2 8c c2 8d c2 8e c2 8f
...
0000160 c3 b0 c3 b1 c3 b2 c3 b3 c3 b4 c3 b5 c3 b6 c3 b7
0000170 c3 b8 c3 b9 c3 ba c3 bb c3 bc c3 bd c3 be c3 bf
0000180

Rebolを使用してバイナリデータを標準出力に出力する方法はありますか?

4

2 に答える 2

2

いいえ。Rebol 3 では、コンソールUTF-8 であり、それがprinによって生成されます。

ただし、バイナリをファイルに書き込むことはできます。これは、両方の Rebol で完全に機能します。

(一部のシステムでは、バイナリを%/dev/stdoutに書き込んで、必要と思われるものを正確に取得できるのではないかとさえ思っています。しかし、私はそれらのシステムを実行していないため、emptor に注意してください。)

于 2015-06-02T12:21:26.030 に答える