Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/mysql/62.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python 在zlib中编码并插入mysql_Python_Mysql_Encoding_Utf 8 - Fatal编程技术网

Python 在zlib中编码并插入mysql

Python 在zlib中编码并插入mysql,python,mysql,encoding,utf-8,Python,Mysql,Encoding,Utf 8,我有一个用户输入,utf8格式,很长。 我想把它压缩到mysql中。 因此: 无论我做什么(value=str(value),value=value.decode…),它都不起作用 错误代码示例: 'ascii' codec can't encode character u'\xe9' in position 8177: ordinal not in range(128) 'ascii' codec can't encode character u'\xe9' in position 747:

我有一个用户输入,utf8格式,很长。 我想把它压缩到mysql中。 因此:

无论我做什么(value=str(value),value=value.decode…),它都不起作用

错误代码示例:

'ascii' codec can't encode character u'\xe9' in position 8177: ordinal not in range(128)
'ascii' codec can't encode character u'\xe9' in position 747: ordinal not in range(128)'ascii' codec can't encode character u'\xe9' in position 2478: ordinal not in range(128)
我试图改变字段的结构:长文本、长二进制、blob,。。。 没什么


答案?

value.encode('zlib')的输出将是二进制的,这不一定是有效的UTF-8(即几乎不可能)

我会这样做:

value = value.encode('zlib').encode('base64')

这将为您提供一个长ASCII字符串,它可以安全地包含在SQL查询中。

您需要转义并引用替换,而不是简单地使用%s。
value = value.encode('zlib').encode('base64')