当我使用psycopg2向PostgreSQL插入数据时,我无法插入包含 '\x00' 的字符串。
这是我的代码:
>>> import psycopg2
>>> import psycopg2.extensions
>>> conn = psycopg2.connect(database='test')
>>> curs = conn.cursor()
>>> print curs.mogrify('insert into test values (%s, %s)',
('hello, buddy', 'str\x00str'))
>>> curs.close()
>>> conn.close()
我可以得到这样的字符串:
>>> ...
>>> print curs.mogrify('insert into test values (%s, %s)',
... ('hello, world', 'str\x00str'))
insert into test values ('hello, world', 'str')
>>> ...
那么,“\x00str”在哪里?
但是,在psycopg2中,我发现了一些关于 unicoding-handling 的信息。
它显示 ['\x01' - '\xff] 有效。
代码如:
>>> ...
>>> print curs.mogrify('insert into test values (%s, %s)',
... ('hello, world', 'str\x01\x02\x03...\xffstr'))
insert into test values ('hello, world', 'str\x01\x02\x03...\xffstr')
>>> ...
[问题]:'\x00str'在哪里?如何使字符串 '\x00' 在 psycopg2 中工作?