试图在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')
-> 给你一个十六进制字符串
...等等
大约一周前,我发现了一个非常好的从文本到十六进制的转换器。
但是,我没有测试带有换行符的文本。突然我的 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')
-> 给你一个十六进制字符串
...等等