将二进制数据转换为节点中的字符串

时间:2015-01-15 09:43:17

标签: javascript node.js

下面的代码是以二进制格式返回数据,如何将其转换为字符串?

fs.readFile('C:/test.prn', function (err, data) {
  bufferString = data.toString(); 
  bufferStringSplit = bufferString.split('\n'); 
  console.log(bufferStringSplit)
}); 


console.log(bufferStringSplit)   

输出

&b27WPML ? ?????§201501081339&b16WPML ? ?????? *o5W?      ?&l6H&l0S*r4800S&l-1M*o5W
? ??&l0E&l0L&u600D&l74A*o5W??  :*o5W??  :*o-3M&l-2H&l0O*o5W??   *o7        ?*g20W?? ??X?X        ???X?X

?,??????????%]?? ?M???/????r????WWW???Y???~???$???///?9???DDD?N??Y???0v0w0v0w0v0w0v145w??T????!??###??????????'''?d??????????EEE?hhh??????????????
?'''?d??????EEE?hhh???=??5???-}???#????%???s?????? ?+???¦??

2 个答案:

答案 0 :(得分:0)

这很有可能发生,因为您的.prn文件是二进制文件,也就是说,它不包含ASCII,UTF8或ISO-8859-1等纯文本。您需要在JS代码或外部工具中转换它。或者,您可以读取并处理它作为二进制文件,但您不会在“普通”字符串上操作。

答案 1 :(得分:0)

*.prn很可能是打印机文件(http://filext.com/file-extension/PRN),因此它是二进制文件,不能显示为字符串。 您需要将文件处理为二进制文件或将其转换为您选择的编码字符串。