Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/316.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
&引用;FF FF";被当作“垃圾”扔掉;FD";在一些使用Java脚本API的计算机上_Java_Javascript_Io - Fatal编程技术网

&引用;FF FF";被当作“垃圾”扔掉;FD";在一些使用Java脚本API的计算机上

&引用;FF FF";被当作“垃圾”扔掉;FD";在一些使用Java脚本API的计算机上,java,javascript,io,Java,Javascript,Io,我在一些电脑上遇到问题。在分析转储文件后,我注意到“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_strin

我在一些电脑上遇到问题。在分析转储文件后,我注意到“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);

您正在将数据从字节转换为字符串,而不指定编码(使用本地从属平台默认编码),然后使用API文档中记录为丢弃每个字符的高阶字节的
writeBytes()
方法将其写入文件

你期待什么?事实上,我很惊讶结果与原始数据有任何相似之处

您最可能应该做的是将最后两行替换为:

outputfile.write(byte_data_array);

请记住:字节代表数据,字符串代表文本,如果在它们之间进行转换,则始终需要注意使用的编码方式。

我从未在JavaScript中见过
RandomAccessFile
java.lang.String
。这是从哪里来的?@FelixKling这些来自Java。(importPackage(java.io);和importPackage(java.lang);)。如何将java导入JavaScript?这是两种不同的编程语言。@FelixKling请看,它给出了如何在java脚本中导入java包的示例。好的,您正在java脚本引擎中运行JavaScript代码——这是一种非常奇特的情况。毫不奇怪,在人们看来,因为名称(一个常见的初学者错误)而混淆了Java和JavaScript。