大约一周前,我发现了一个非常好的转换器,从文本到十六进制。
但是,我没有使用换行符测试文本。突然我的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,所以那里也有问题....
答案 0 :(得分:0)
好吧,你的问题是标记了nodejs所以我想你可以使用原生的Buffer对象:
new Buffer(hexString, 'hex')
- &gt;为您提供十六进制字符串的缓冲区对象。
new Buffer(string, 'utf-8')
- &gt;给你一个字符串的缓冲对象。
yourBuffer.toString('hex')
- &gt;给你一个十六进制字符串
......等等