nodejs& JS'分裂'方法返回不同的结果

时间:2017-04-03 23:06:28

标签: node.js fs

从txt文件中拆分文本(utf16le,环境是macos);

我使用fs读取aaa.txt,并拆分(' \ n \ n'),结果长度为1。 我在页面上渲染数据,并使用jquery读取内容,使用split(' \ n \ n'),结果长度为6(正确的结果)

aaa.txt

1�
�
�a�
�
�
�
�2�
�
�b�
�
�
�
�3�
�
�c�
�
�d�
�
�
�
�4�
�
�e�
�
�
�
�5�
�
�f�
�
�
�
�6�
�
�g�
�

节点代码:

 fs.readFile(__dirname+'/aaa.txt','utf16le',function (err,data) {
if(err){console.log(err);}
else {
  // console.log(data);
  // console.log(data);
  var textSubtitles = data.split('\n\n');
  console.log('length');
  console.log(textSubtitles.length);// the result is 1!!!
  res.render('aaa.ejs', {
        content:data
    })
}

jquery代码:

 let sss = $('#fff').text().split('\n\n'); 

console.log(sss.length); //结果是6 !!!

sss是由nodejs呈现的数据,相同的文本。

1 个答案:

答案 0 :(得分:1)

这是因为来自文本的字符串是

[ '1\r\na\r\n\r\n2\r\nb\r\n\r\n3\r\nc\r\nd\r\n\r\n4\r\ne\r\n\r\n5\r\nf\r\n\r\n6\r\ng\r\n' ]

我需要使用拆分(' \ r \ n \ r \ n')而不是拆分(' \ n \ n')