1

TFTP(RFC 1350)クライアントとサーバーをJavaで実装しています。

現在、3つの転送モードがサポートされています。netascii(これは、「Telnetプロトコル仕様」[3]で指定された変更を加えた「米国情報交換標準コード」[1]で定義されているASCIIです。)8ビットASCIIであることに注意してください。「netascii」という用語は、このドキュメント全体で、この特定のバージョンのASCIIを意味するために使用されます。

これはJava用語で何を意味しますか?このモードで、ファイルの読み取り/書き込み、または文字列の変換を行うにはどうすればよいですか?

4

2 に答える 2

2

netasciiはASCIIの8ビット拡張として定義されているようですが、0x20から0x7Fの範囲の基本ASCIIと8つの制御文字(9ページを参照)に制限されています:0x00(NUL)、0x10(LF)、0x13(CR)、 0x07(BEL)、0x08(BS)、0x09(HT)、0x11(VT)、および0x12(FF)。

出力がこの範囲内でのみ純粋なASCIIであることを確認することに加えて、netasciiの別の要件は、改行が常にCRLFであるため、それに応じて変換する必要があることです。CRの後には、LFまたはNULのいずれかのみを続けることができます。

Apache Commonsを使用してこれを処理できますが、独自の実装を展開する場合はUS-ASCII、Javaでエンコードを使用し、追加のチェックを実行して、0x00から許可されていない制御文字がないことを確認します。 0x20の範囲で、最後に改行が単なるLFではなくCRLFであることを確認します。

于 2012-06-07T17:33:37.787 に答える
1

Q:これはJava用語で何を意味しますか?

A:これらの8ビットASCII値を読み書きするときに、文字セットを指定する必要があることを意味していると思います。

  • byte[] bytes = string.getBytes("UTF-8");

  • String string = new String(bytes, "UTF-8");

于 2012-06-07T17:17:35.560 に答える