试图在nodejs中将textarea转换为十六进制

trying to convert textarea to hexadecimal in nodejs

大约一周前,我发现了一个非常好的从文本到十六进制的转换器。

但是,我没有测试带有换行符的文本。突然我的 nodejs 应用程序返回了这个: fÚf

而不是:

f

f

十六进制,根据string-functions.com应该是660d0a0d0a66但是我的申请returns66da66

这是我的 "toHex" 和 "toText" 代码。这种转换不是我的强项。

var toHex = function toHex (str) {
  var hex = ''
  for (var i = 0; i < str.length; i++) {
    hex += '' + str.charCodeAt(i).toString(16)
  }
  return hex
}

var toText = function (hexx) {
  var hex = hexx.toString() // force conversion
  var str = ''
  for (var i = 0; i < hex.length; i += 2) {
   str += String.fromCharCode(parseInt(hex.substr(i, 2), 16))
  }
return str
}

编辑: 当我将 660d0a0d0a66 直接插入我的转换器时,它转换为:f f,所以那里也有问题....

好吧,你的问题被标记为 nodejs,所以我想你可以使用本机 Buffer 对象: new Buffer(hexString, 'hex') -> 给你一个十六进制字符串的缓冲对象。 new Buffer(string, 'utf-8') -> 给你一个字符串的缓冲对象。 yourBuffer.toString('hex') -> 给你一个十六进制字符串
...等等