【发布时间】: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