&引用;FF FF";被当作“垃圾”扔掉;FD";在一些使用Java脚本API的计算机上
我在一些电脑上遇到问题。在分析转储文件后,我注意到“FF FF”在一些电脑上打印为“FD”。下面是代码片段:&引用;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
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。