【问题标题】:trying to convert textarea to hexadecimal in nodejs试图在nodejs中将textarea转换为十六进制
【发布时间】:2017-05-14 16:13:59
【问题描述】:

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

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

代替:

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,所以那里也有问题....

【问题讨论】:

  • 这里我有点迷茫...你为什么不直接做一个简单的parseInt(str).toString(16) 而不是写整个toHex函数呢?
  • 因为当我尝试使用 parseInt(str).toString(16) 它返回 NaN(不是数字)

标签: node.js hex data-conversion


【解决方案1】:

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

【讨论】:

  • 谢谢,经过反复试验,我设法让它工作。虽然我现在遇到了其他问题。但这解决了转换问题:)
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2016-06-01
  • 2011-07-28
  • 1970-01-01
  • 1970-01-01
  • 2022-01-14
相关资源
最近更新 更多