将字节字符串保存到数据库中的varchar列

4 投票
1 回答
3238 浏览
提问于 2025-04-17 00:26

下面是一个元组的内容:

('g\xba\xfc\x995m\x9a\xf0\x1d\x8b4f1\x05\xdel\xc8;\x10\xffl\xfd{\xc7MA!\x90\xe5N
\xf9\x98\xf80\xe0wu\x82B\xb5\xc6\xb1T\\Px_\xfarT\x04\xd4\xe1\xfb?\x81\xa2M\x94P\
xa6\x89bM\x00\x18Q\xf7\x979\xd4V\xc5=\xc6\xff.\xf4\x857\t\xdd\xb0\xe4\xda\x1b8\x
b6T\xfbK\x0c\xd4\xc8\x99\xd0\r\xfd\x18\xcfd\x15C\xfaF)\xacuAU\xeb\xb2\xa6\xd9\xb
5-\xa6[\xad6\x17\x13\xe5\xeeqnR"7\xbc\x93\x99\x07H\xbe\nG\x9ejR\xe8\xb5\xdc\xb7\
x93\xc5\x15\'\x95\xb7k\x89\x9d\x04G\xfe\x11\xfa\x0f\x18u\x90v,[\x80_\x93\x0f\xec
\x8cX0\xc7e\xd4\x10\xb7\x89\xe23y\xebo\x06\x11/\x01\x17\xc5U\x87\xbd\xfc\xa6\xbd
\x05\xcb\x9fOWNP\xe8zB`"\x9b\xbf\x0c\xaa\x9b\xfe\x95\x0f\xf5\x81f\x04\xa4c\xae\x
f8\x11\xd6\xcaL\xcf\xd2ZCJ\xcc\x94e\xc3Q_\x8c\xa7\x12\xe3F\xdc\x08*\x98f\xac\x99
\xdf\x0ey\x1dy',)

这是一个字节字符串,我想把它转换成普通字符串,然后插入到数据库(mysql)中,之后再把它转换回字节字符串。

谢谢

1 个回答

8

如果你有一个任意的字节字符串,建议你使用类似base64的工具把它转换成文本:

import base64
encoded = base64.b64encode(byteString)
# Now insert "encoded" into the database

然后:

import base64
# Retrieve encoded from the database...
byteString = base64.b64decode(encoded)

不应该仅仅把它当作编码文本来处理,除非它确实编码文本。

另外,如果你可以控制数据库的结构,建议你考虑把表格改成使用二进制类型的列,而不是文本类型的列。

撰写回答