javascript - Node.js .forEach 输出在 Raspbian 中不如预期,但在 Windows 中很好
问题描述
跨平台的代码是相同的,但是在 Windows 中运行我的代码时,它按预期执行并返回:
test: US
test: us
但随后在 Raspbian 中运行它,这是唯一的变化,它返回:
test:
US
us
我找不到任何理由说明它在 Raspbian 甚至基础 Linux 中的行为会有所不同,这就是我在这里问的原因。我用来创建这些输出的代码如下:
var data = fs.readFileSync('./txt/wordlist.txt', 'ascii').toString().split("\r\n");
var filtered = data.filter(function (el) {
return el != "";
});
if(filtered!=""){
filtered.forEach(function(d){
var dFS = "test: " + d;
console.log(dFS);
});
}
我的单词表如下,当然还有扩展的计划:
US
us
用于创建完整的单词表的方法:
added.forEach(function(a){
fs.appendFileSync('./txt/wordlist.txt',`\r\n${a}`,'ascii');
});
解决方案
因此,就我的单词列表而言,这是一个奇怪的格式问题,既可以用 ascii 写入,也可以用 ascii 读取,包括在写入和拆分返回的输出时使用 \r\n 。我意识到这是 Linux 环境中的主要不同之处,在将所有内容更改为 utf-8 并仅拆分 \n 并替换单词列表中的换行符后,它按预期工作。
推荐阅读
- java - SoapUI 如何获取每个 TestStep 的请求和响应大小
- mysql - spring boot jpa:ddl-auto=create 不创建模式
- perl - Perl 失败的语言环境。你是怎么设置的?
- keycloak - 在 Keycloak 扩展中实现 AbstractOAuth2IdentityProvider 时出现 NoClassDefFoundError
- python - 为什么我不能让我的“def”函数正确输出文本?
- android - 如何使用 Spinner 从显示文本中获取不同的返回值?
- java - 无法序列化包含 orientdb 记录 ID 的地图
- javascript - 使用键值中的“:”访问 JSON 值
- java - 如何 JavaDoc 动作监听器
- jms - 挂起状态下的 Tibco JMS 队列发件人活动