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

时间:2017-05-14 16:13:59

标签: node.js hex data-conversion

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

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

而不是:

˚F

˚F

十六进制,根据string-functions.com应为660d0a0d0a66,但我的应用程序返回66da66

这是我的“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,所以那里也有问题....

1 个答案:

答案 0 :(得分:0)

好吧,你的问题是标记了nodejs所以我想你可以使用原生的Buffer对象: new Buffer(hexString, 'hex') - &gt;为您提供十六进制字符串的缓冲区对象。 new Buffer(string, 'utf-8') - &gt;给你一个字符串的缓冲对象。 yourBuffer.toString('hex') - &gt;给你一个十六进制字符串
......等等