You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

NodeJS中textarea提交与文件读取内容换行符不一致求助

换行符差异导致哈希不匹配的解决方案

为什么两种获取方式换行符不同?

  • 浏览器textarea提交的内容:多数浏览器(尤其是Windows环境下)会将textarea中的换行处理为\r\n(CRLF格式),遵循早期Windows系统的换行标准。
  • 文件读取的内容:代码存入文件时,若在类Unix系统(Linux/macOS)下保存,文件默认使用\n(LF格式);fs.readFileSync以utf8读取时会保留文件实际的换行符,因此读取结果为\n。

统一换行符的解决方案

你可以根据需求将两种来源的字符串统一为同一种换行格式:

方案1:统一转为LF(与文件读取结果一致)

对从req.body获取的合约代码做替换处理:

// 替换所有\r\n为\n,同时兼容单独的\r
const normalizedContractCode = contractCode.replace(/\r\n?/g, '\n');

方案2:统一转为CRLF(与textarea提交结果一致)

对文件读取的内容做替换处理:

const fileContent = fs.readFileSync('GetSet.sol', 'utf8');
const normalizedFileContent = fileContent.replace(/\n/g, '\r\n');

建议:跨平台场景下优先选择统一为LF格式,因为类Unix系统、多数现代开发工具及JSON序列化逻辑都默认支持LF,兼容性更好。

内容的提问来源于stack exchange,提问作者Linh Nguyen

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.21 21:48:20