0

一部の PC でJava Scripting API と JavaScript を併用すると問題が発生します。ダンプされたファイルを分析したところ、一部の PC では「FF FF」が「FD」として印刷されていることがわかりました。以下はコード スニペットです。

var outputfile = new RandomAccessFile(f, "rw");
var byte_data_array = getMyByteArrayData(somebytearray); 
var data_string = new java.lang.String(byte_data_array);
outputfile.writeBytes(data_string);
4

1 に答える 1

1

エンコーディングを指定せずにデータをバイトから文字列に変換し(ローカル依存のプラットフォームのデフォルトエンコーディングを使用)、writeBytes()APIドキュメントに記載されているメソッドを使用してファイルに書き込みます。各キャラクター。

何を期待していましたか?実際、結果が元のデータとまったく似ていることに驚いています。

最も可能性が高いのは、最後の 2 行を次のように置き換えることです。

outputfile.write(byte_data_array);

そして常に覚えておいてください: バイトはデータ用であり、文字列はテキスト用であり、それらの間で変換する場合は、どのエンコーディングが使用されているかに常に注意を払う必要があります。

于 2013-05-03T12:16:54.873 に答える