Javascript unhex for mysql

Javascript unhex for mysql

本文关键字:mysql for unhex Javascript      更新时间:2023-09-26

我想在MySQL中保存二进制长度16 uuid:

在MySQL中,我只需要这样做:

unhex(replace(uuid(), '-', '')

我已经这样做了:

var uuid = require('node-uuid');
var id = new Buffer(uuid.v4().replace(/-/g, ''), 'binary');

我得到了一个Buffer[32]值插入到数据库中。这是不对的,它没有完全保存成二进制。

我使用booshelfjs格式的数据库命令,所以我不打算在我的代码上运行MySQL命令。

有人知道吗?

生成的UUID以十六进制表示。因此,有必要不使用二进制输入编码,而是使用十六进制:

var uuid = require('node-uuid');
var id = new Buffer(uuid.v4().replace(/-/g, ''), 'hex');

在普通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);
  }