Javascript mysql 的非十六进制
Javascript unhex for mysql
我想在 MySQL:
中保存二进制长度为 16 的 uuid
在 MySQL 我只需要这样做:
unhex(replace(uuid(), '-', '')
我已经这样做了:
var uuid = require('node-uuid');
var id = new Buffer(uuid.v4().replace(/-/g, ''), 'binary');
我将一个 Buffer[32] 值插入到数据库中。那不对,它没有完全保存在二进制中。
我正在使用 booshelfjs orm 作为数据库命令,所以我不打算对我的代码执行 运行 MySQL 命令。
有人知道吗?
生成的 UUID 以十六进制表示。因此,有必要使用十六进制而不是二进制输入编码:
var uuid = require('node-uuid');
var id = new Buffer(uuid.v4().replace(/-/g, ''), 'hex');
在 vanilla JS 中,同时支持节点和浏览器:
function unhex(s) {
var arr = []
for (var i = 0; i < s.length; i += 2) {
var c = s.substr(i, 2);
arr.push(parseInt(c, 16));
}
return String.fromCharCode.apply(null, arr);
}
我想在 MySQL:
中保存二进制长度为 16 的 uuid在 MySQL 我只需要这样做:
unhex(replace(uuid(), '-', '')
我已经这样做了:
var uuid = require('node-uuid');
var id = new Buffer(uuid.v4().replace(/-/g, ''), 'binary');
我将一个 Buffer[32] 值插入到数据库中。那不对,它没有完全保存在二进制中。
我正在使用 booshelfjs orm 作为数据库命令,所以我不打算对我的代码执行 运行 MySQL 命令。
有人知道吗?
生成的 UUID 以十六进制表示。因此,有必要使用十六进制而不是二进制输入编码:
var uuid = require('node-uuid');
var id = new Buffer(uuid.v4().replace(/-/g, ''), 'hex');
在 vanilla JS 中,同时支持节点和浏览器:
function unhex(s) {
var arr = []
for (var i = 0; i < s.length; i += 2) {
var c = s.substr(i, 2);
arr.push(parseInt(c, 16));
}
return String.fromCharCode.apply(null, arr);
}