Python 如何插入十六进制/二进制?进入mysql数据库?

Python 如何插入十六进制/二进制?进入mysql数据库?,python,mysql,Python,Mysql,我试图在mysql数据库的字段中插入一些十六进制值 这是我需要插入的值类型: ['D\x93\xb4s\xa5\x9eM\\\x14\xf3*\x95\xf9\x83\x1d*%P\xdb\xa2', 'D\xbf\xef\xb0\xc8\xff\x17\xc6Y6\xc6\xb4,p\xaa\xb1\xf2V\xdaa', 'D\xd7~~\x02\xd3|}\xfcN\xc1\x03\x97\x07\xb5<U\x16Y\x9e', '\xf3\xb6\xc2,Y/[i\x98\x93

我试图在mysql数据库的字段中插入一些十六进制值

这是我需要插入的值类型:

['D\x93\xb4s\xa5\x9eM\\\x14\xf3*\x95\xf9\x83\x1d*%P\xdb\xa2', 'D\xbf\xef\xb0\xc8\xff\x17\xc6Y6\xc6\xb4,p\xaa\xb1\xf2V\xdaa', 'D\xd7~~\x02\xd3|}\xfcN\xc1\x03\x97\x07\xb5<U\x16Y\x9e', '\xf3\xb6\xc2,Y/[i\x98\x93\x9d\xb2R\x93\x84\x12W\x1a3\x19', '\xf3\xb7\xce\x1f-n\x89\xb6\x87K\x9dsf\xcb=w\xab\x1a\xa0<', '\xf3\xbf7\x04d\xe6\xdf\xf8"9\x1d\x05\x01\xe4\xd4\xb0\xad\x80\xc0\xf5']
目前,我正在添加十六进制数据,就像添加普通字符串一样,但这会导致添加不可读的输入:

D??s??M?*???*%P?  

如何添加十六进制数据

检查字符集

   CREATE TABLE `t` (
      `id` varchar(32) NOT NULL,
      PRIMARY KEY  (`id`)
    ) ENGINE=MyISAM DEFAULT CHARSET=utf8

也许真正的方式是和功能。但是,这篇文章可能会有所帮助

这些不是十六进制值

我可能有点不对劲,但我发现插入值的唯一方法是:

$string = 'D\x93\xb4s\xa5\x9eM\\\x14\xf3*\x95\xf9\x83\x1d*%P\xdb\xa2';
$pattern = '#\\\#';
$replacement = '\\\\\\';
$insert_value = preg_replace($pattern, $replacement, $string);
然后继续插入。您可以对列使用
VARCHAR(256)

我肯定有很多更好的方法来解决这个问题



很明显,我是SO的python部分。我以为是PHP。这是我订阅多个标签的结果。

。用法非常简单。谢谢我尝试过(UNHEX(HEX(identity[c])),但是得到了错误名称error:name'UNHEX'没有定义我认为它不是拉丁语或utf8。也许它是二进制的或者其他的BLOB类型的东西?我想你是对的,它们不是十六进制值,而是二进制字符串值吗?我真的不知道。破译十六进制有点超出我的工资等级。如果你想在stackoverflow的C部分找到一个高质量的答案,那些人会帮你的。
$string = 'D\x93\xb4s\xa5\x9eM\\\x14\xf3*\x95\xf9\x83\x1d*%P\xdb\xa2';
$pattern = '#\\\#';
$replacement = '\\\\\\';
$insert_value = preg_replace($pattern, $replacement, $string);